<template>
	<div class="article-manager video-icon form-submit" id="shopp-manager">
		<div class="i-layout-page-header">
			<PageHeader class="product_tabs" hidden-breadcrumb>
				<div slot="title" class="acea-row row-middle">
					<router-link :to="{ path: '/admin/product/product_list' }">
						<div class="font-sm after-line">
							<span class="iconfont iconfanhui"></span>
							<span class="pl10">返回</span>
						</div>
					</router-link>
					<span v-text="$route.params.id ? '编辑商品' : '添加商品'" class="mr20 ml16"></span>
				</div>
			</PageHeader>
		</div>
		<Card :bordered="false" dis-hover class="ivu-mt">
			<div class="new_tab">
				<Tabs v-model="currentTab" @on-click="onhangeTab">
					<TabPane v-for="(item, index) in headTab" :key="index" :label="item.title" :name="item.name">
					</TabPane>
				</Tabs>
			</div>
			<Form class="formValidate mt20" ref="formValidate" :rules="ruleValidate" :model="formValidate"
				:label-width="labelWidth" :label-position="labelPosition" @submit.native.prevent>
				<Row :gutter="24" type="flex" v-show="currentTab === '1'">
					<!-- 商品信息-->
					<Col span="24">
					<FormItem label="商品类型：" props="is_virtual">
						<div class="productType" :class="formValidate.product_type == item.id ? 'on' : ''
		        " v-for="(item, index) in productType" :key="index" @click="productTypeTap(1,item)">
							<div class="name">{{ item.name }}</div>
							<div class="title">({{ item.title }})</div>
							<div v-if="formValidate.product_type == item.id" class="jiao"></div>
							<div v-if="formValidate.product_type == item.id" class="iconfont iconduihao"></div>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品分类：" prop="cate_id">
						<el-cascader placeholder="请选择商品分类" v-width="'50%'" size="mini" v-model="formValidate.cate_id"
							:options="treeSelect" :props="props" filterable clearable>
						</el-cascader>
						<span class="addClass" @click="addClass">新增分类</span>
						<!-- <Select v-model="formValidate.cate_id" multiple v-width="'50%'">
		        <Option
		          v-for="item in treeSelect"
		          :disabled="item.pid === 0"
		          :value="item.id"
		          :key="item.id"
		          >{{ item.html + item.cate_name }}</Option
		        >
		      </Select> -->
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品名称：" prop="store_name">
						<Input v-model="formValidate.store_name" placeholder="请输入商品名称" v-width="'50%'" />
					</FormItem>
					</Col>
					<Col span="24" class="brandName">
					<FormItem label="商品品牌：" prop="">
						<Cascader :data="brandData" placeholder="请选择商品品牌" change-on-select
							v-model="formValidate.brand_id" filterable v-width="'50%'"></Cascader>
						<span class="addClass" @click="addBrand">新增品牌</span>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="单位：" prop="unit_name">
						<Select v-model="formValidate.unit_name" clearable filterable v-width="'50%'"
							placeholder="请输入单位">
							<Option v-for="(item, index) in unitNameList" :value="item.name" :key="index">
								{{ item.name }}</Option>
						</Select>
						<span class="addClass" @click="addUnit">新增单位</span>
					</FormItem>
					</Col>
					<!--  <Col span="24">
		    <FormItem label="商品条形码：" prop="">
		      <Input
		        v-model="formValidate.bar_code"
		        placeholder="请输入商品条形码"
		        v-width="'50%'"
		      />
		    </FormItem>
		  </Col> -->
					<Col span="24">
					<FormItem label="商品编码：" prop="code">
						<Input v-model="formValidate.code" placeholder="请输入商品编码" v-width="'50%'" />
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品轮播图：" prop="slider_image">
						<div class="acea-row">
							<div class="pictrue" v-for="(item, index) in formValidate.slider_image" :key="index"
								draggable="true" @dragstart="handleDragStart($event, item)"
								@dragover.prevent="handleDragOver($event, item)"
								@dragenter="handleDragEnter($event, item)" @dragend="handleDragEnd($event, item)">
								<img v-lazy="item" />
								<Button shape="circle" icon="md-close" @click.native="handleRemove(index)"
									class="btndel"></Button>
							</div>
							<div v-if="formValidate.slider_image.length < 10" class="upLoad acea-row row-center-wrapper"
								@click="modalPicTap('duo')">
								<Icon type="ios-camera-outline" size="26" />
							</div>
							<Input v-model="formValidate.slider_image[0]" class="input-display"></Input>
						</div>
						<div class="tips"> 建议尺寸：800 * 800px，可拖拽改变图片顺序，默认首张图为主图，最多上传10张</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品标签：" prop="store_label_id" class="labelClass">
						<div class="acea-row row-middle">
							<div class="labelInput acea-row row-between-wrapper" @click="openStoreLabel">
								<div style="width: 90%;">
									<div v-if="storeDataLabel.length">
										<Tag closable v-for="(item,index) in storeDataLabel" key="index"
											@on-close="closeStoreLabel(item)">{{item.label_name}}</Tag>
									</div>
									<span class="span" v-else>选择商品标签</span>
								</div>
								<div class="iconfont iconxiayi"></div>
							</div>
							<span class="addClass" @click="addStoreLabel">新增标签</span>
						</div>
					</FormItem>
					</Col>
					<!-- 	      <Col span="24">
            <FormItem label="供应商：" prop="supplier_id" v-if="formValidate.product_type == 0">
				<Select
				  v-model="formValidate.supplier_id"
				  clearable
					filterable
				  v-width="'50%'"
				  placeholder="请选择供应商"
				>
				  <Option
				    v-for="(item, index) in supplierList"
				    :value="item.id"
				    :key="index"
				    >{{item.supplier_name }}</Option
				  >
				</Select>

            </FormItem>
          </Col> -->
					<Col span="24">
					<FormItem label="添加视频：">
						<i-switch v-model="formValidate.video_open" size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.video_open">
					<FormItem label="上传视频：" prop="video_link">
						<Button @click="modalPicTap('dan','video')">上传视频</Button>
						<div class="tips">建议使用云存储保存视频，<router-link
								:to="{ path: '/admin/setting/storage' }">配置云存储</router-link>，建议时长：9～30秒，视频宽高比16:9
							<Poptip placement="bottom" trigger="hover" width="440" transfer padding="8px">
								<a>查看示例</a>
								<div class="exampleImg" slot="content">
									<img :src="`${baseURL}/statics/system/productVideo.png`" alt=""
										style="width: 204px;height: 270px;" />
									<img :src="`${baseURL}/statics/system/productVideo2.png`" alt=""
										style="width: 204px;height: 270px;" />
								</div>
							</Poptip>
						</div>
						<div class="iview-video-style" v-if="formValidate.video_link">
							<video class="video-style" :src="formValidate.video_link" controls="controls">
							</video>
							<div class="mark"></div>
							<Icon type="ios-trash-outline" class="iconv" @click="delVideo" />
						</div>
					</FormItem>
					</Col>
					<!--      <Col span="24" v-if="formValidate.video_open">-->
					<!--		    <FormItem label="视频类型：">-->
					<!--		      <RadioGroup v-model="seletVideo" @on-change="changeVideo">-->
					<!--		        <Radio :label="0" class="radio">本地视频</Radio>-->
					<!--		        <Radio :label="1">视频链接</Radio>-->
					<!--		      </RadioGroup>-->
					<!--		    </FormItem>-->
					<!--		  </Col>-->
					<!--          <Col span="24" v-if="formValidate.video_open">-->
					<!--            <FormItem label="" prop="video_link">-->
					<!--              <Input-->
					<!--			    v-if="seletVideo == 1 && !formValidate.video_link"-->
					<!--                v-width="'50%'"-->
					<!--                v-model="videoLink"-->
					<!--                placeholder="请输入视频链接"-->
					<!--              />-->
					<!--              <input-->
					<!--                type="file"-->
					<!--                ref="refid"-->
					<!--                @change="zh_uploadFile_change"-->
					<!--                 class="input-display"-->
					<!--              />-->
					<!--			  <div-->
					<!--			    v-if="-->
					<!--			      seletVideo == 0 &&-->
					<!--			      (upload_type !== '1' || videoLink) &&-->
					<!--			      !formValidate.video_link-->
					<!--			    "-->
					<!--			    class="ml10 videbox"-->
					<!--			    @click="zh_uploadFile"-->
					<!--			  >-->
					<!--			    +-->
					<!--			  </div>-->
					<!--			  <Button-->
					<!--			    v-if="-->
					<!--			      seletVideo == 1 &&-->
					<!--			      (upload_type !== '1' || videoLink) &&-->
					<!--			      !formValidate.video_link-->
					<!--			    "-->
					<!--			    type="primary"-->
					<!--			    icon="ios-cloud-upload-outline"-->
					<!--			    class="uploadVideo"-->
					<!--			    @click="zh_uploadFile"-->
					<!--			    >确认添加</Button>-->
					<!--				<Upload-->
					<!--				  v-if="upload_type === '1' && !videoLink"-->
					<!--				  :show-upload-list="false"-->
					<!--				  :action="fileUrl2"-->
					<!--				  :before-upload="videoSaveToUrl"-->
					<!--				  :data="uploadData"-->
					<!--				  :headers="header"-->
					<!--				  :multiple="true"-->
					<!--				  style="display: inline-block"-->
					<!--				>-->
					<!--				    <div-->
					<!--				      v-if="seletVideo === 0 && !formValidate.video_link"-->
					<!--				      class="videbox"-->
					<!--				    >-->
					<!--				      +-->
					<!--				    </div>-->
					<!--				</Upload>-->
					<!--              <div class="iview-video-style" v-if="formValidate.video_link">-->
					<!--                <video-->
					<!--				  class="video-style"-->
					<!--                  :src="formValidate.video_link"-->
					<!--                  controls="controls"-->
					<!--                >-->
					<!--                  您的浏览器不支持 video 标签。-->
					<!--                </video>-->
					<!--                <div class="mark"></div>-->
					<!--                <Icon-->
					<!--                  type="ios-trash-outline"-->
					<!--                  class="iconv"-->
					<!--                  @click="delVideo"-->
					<!--                />-->
					<!--              </div>-->
					<!--			  <Progress-->
					<!--			    class="progress"-->
					<!--			    :percent="progress"-->
					<!--			    :stroke-width="5"-->
					<!--			    v-if="upload.videoIng || videoIng"-->
					<!--			  />-->
					<!--			  <div class="tips">建议时长：9～30秒，视频宽高比16:9</div>-->
					<!--        </FormItem>-->
					<!--      </Col>-->
					<Col span="24" class="goodsShow">
					<FormItem label="上架时间：">
						<RadioGroup v-model="formValidate.is_show" @on-change="goodsOn">
							<Radio :label="1">
								<Icon type="social-apple"></Icon>
								<span>立即上架</span>
							</Radio>
							<Radio :label="2">
								<Icon type="social-android"></Icon>
								<span>定时上架</span>
							</Radio>
							<Radio :label="0">
								<Icon type="social-windows"></Icon>
								<span>放入仓库</span>
							</Radio>
						</RadioGroup>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.is_show==2">
					<FormItem label="">
						<DatePicker type="datetime" @on-change="onchangeShow" :options="startPickOptions"
							:value="formValidate.auto_on_time" v-model="formValidate.auto_on_time" placeholder="请选择上架时间"
							format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
					</FormItem>
					</Col>
					<Col span="24" class="goodsShow">
					<FormItem label="定时下架：">
						<Switch v-model="off_show" :true-value="1" :false-value="0" size="large" @on-change="goodsOff">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</Switch>
					</FormItem>
					</Col>
					<Col span="24" v-if="off_show==1">
					<FormItem label="">
						<DatePicker type="datetime" @on-change="onchangeOff" :options="endPickOptions"
							:value="formValidate.auto_off_time" v-model="formValidate.auto_off_time"
							placeholder="请选择下架时间" format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
						<div class="tips">开启定时下架后，系统会在设置时间下架该商品。下架时间需晚于开售时间，商品才能定时开售。</div>
					</FormItem>
					</Col>
					<!-- <Col
            :xl="23"
            :lg="24"
            :md="24"
            :sm="24"
            :xs="24"
            v-if="formValidate.spec_type === 0"
          >
            <FormItem>
              <Table :data="oneFormValidate" :columns="columns" border>
                <template slot-scope="{ row, index }" slot="pic">
                  <div
                    class="acea-row row-middle row-center-wrapper"
                    @click="modalPicTap('dan', 'danTable', index)"
                  >
                    <div
                      class="pictrue pictrueTab"
                      v-if="oneFormValidate[0].pic"
                    >
                      <img v-lazy="oneFormValidate[0].pic" />
                    </div>
                    <div
                      class="upLoad pictrueTab acea-row row-center-wrapper"
                      v-else
                    >
                      <Icon type="ios-camera-outline" size="21" />
                    </div>
                  </div>
                </template>
                <template slot-scope="{ row, index }" slot="price">
                  <InputNumber
                    v-model="oneFormValidate[0].price"
                    :min="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
                <template slot-scope="{ row, index }" slot="cost">
                  <InputNumber
                    v-model="oneFormValidate[0].cost"
                    :min="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
                <template slot-scope="{ row, index }" slot="ot_price">
                  <InputNumber
                    v-model="oneFormValidate[0].ot_price"
                    :min="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
                <template slot-scope="{ row, index }" slot="stock">
                  <InputNumber
                    v-model="oneFormValidate[0].stock"
                    :min="0"
                    :precision="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
                <template slot-scope="{ row, index }" slot="bar_code">
                  <Input v-model="oneFormValidate[0].bar_code"></Input>
                </template>
				<template slot-scope="{ row, index }" slot="code">
				  <Input v-model="oneFormValidate[0].code"></Input>
				</template>
                <template slot-scope="{ row, index }" slot="weight">
                  <InputNumber
                    v-model="oneFormValidate[0].weight"
                    :min="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
                <template slot-scope="{ row, index }" slot="volume">
                  <InputNumber
                    v-model="oneFormValidate[0].volume"
                    :min="0"
                    class="priceBox"
                  ></InputNumber>
                </template>
              </Table>
            </FormItem>
          </Col> -->

					<!-- <Col span="24">
                        <FormItem label="商品标签：" prop="label_id">
                            <Select v-model="formValidate.label_id" multiple v-width="'50%'">
                                <Option v-for="item in labelSelect" :value="item.id" :key="item.id">{{ item.label_name }}</Option>
                            </Select>
                        </FormItem>
                    </Col> -->
				</Row>
				<Row :gutter="24" type="flex" v-show="currentTab === '2'">
					<Col span="24" v-if="formValidate.product_type != 4">
					<FormItem label="商品规格：" props="spec_type">
						<RadioGroup v-model="formValidate.spec_type" @on-change="changeSpec">
							<Radio :label="0" class="radio">单规格</Radio>
							<Radio :label="1">多规格</Radio>
						</RadioGroup>
					</FormItem>
					</Col>
					<!-- 多规格添加-->
					<Col span="24" v-if="formValidate.spec_type === 1 && formValidate.product_type != 4" class="noForm">
					<Col span="24">
					<FormItem label="选择规格：" prop="">
						<div class="acea-row row-middle">
							<Select v-model="formValidate.selectRule" style="width: 23%">
								<Option v-for="(item, index) in ruleList" :value="item.rule_name" :key="index">
									{{ item.rule_name }}</Option>
							</Select>
							<Button type="primary" class="mr20" @click="confirm">确认</Button>
							<Button @click="addRule">添加规格模板</Button>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem v-if="attrs.length !== 0">
						<draggable class="dragArea list-group" :list="attrs" group="peoples" handle=".move-icon"
							:move="checkMove" @end="end">
							<div v-for="(item, index) in attrs" :key="index" class="acea-row row-middle mb10">
								<div class="move-icon">
									<span class="iconfont icondrag2"></span>
								</div>
								<div style="width: 90%" :class="moveIndex === index ? 'borderStyle' : ''">
									<div class="acea-row row-middle">
										<span class="mr5">{{ item.value }}</span>
										<Icon type="ios-close-circle" size="14" class="curs"
											@click="handleRemoveRole(index)" />
									</div>
									<div class="rulesBox">
										<draggable :list="item.detail" handle=".drag">
											<Tag type="dot" closable color="primary" v-for="(j, indexn) in item.detail"
												:key="indexn" :name="j" class="mr20 drag"
												@on-close="handleRemove2(item.detail, indexn)">{{ j }}</Tag>
										</draggable>
										<Input search enter-button="添加" placeholder="请输入属性名称"
											v-model="item.detail.attrsVal"
											@on-search="createAttr(item.detail.attrsVal, index)" class="width-add" />
									</div>
								</div>
							</div>
						</draggable>
					</FormItem>
					</Col>
					<Col span="24" v-if="createBnt">
					<FormItem>
						<Button type="primary" icon="md-add" @click="addBtn" class="mr15">添加新规格</Button>
						<Button type="success" @click="generate(1)">立即生成</Button>
					</FormItem>
					</Col>
					<Col span="24" v-if="showIput">
					<Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
					<FormItem label="规格：">
						<Input placeholder="请输入规格" v-model="formDynamic.attrsName" />
					</FormItem>
					</Col>
					<Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
					<FormItem label="规格值：">
						<Input v-model="formDynamic.attrsVal" placeholder="请输入规格值" />
					</FormItem>
					</Col>
					<Col :xl="6" :lg="5" :md="10" :sm="24" :xs="24">
					<FormItem>
						<Button type="primary" class="mr15" @click="createAttrName">确定</Button>
						<Button @click="offAttrName">取消</Button>
					</FormItem>
					</Col>
					</Col>
					<!-- 多规格设置-->
					<Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" v-if="
			      manyFormValidate.length &&
			      formValidate.header.length !== 0 &&
			      attrs.length !== 0
			    ">
					<!-- 批量设置-->
					<Col span="24">
					<FormItem label="批量设置：" class="labeltop">
						<Table :data="oneFormBatch"
							:columns="formValidate.product_type == 1?columnsCarMy:formValidate.product_type == 3?columnsFictitious:columns2"
							border>
							<template slot-scope="{ row, index }" slot="attr">
								<div @click="batchAttr" class="acea-row row-between-wrapper" style="cursor: pointer;">
									<div style="width: 41px;">{{oneFormBatch[0].attr}}</div>
									<span class="iconfont icondrop-down"></span>
								</div>
							</template>
							<template slot-scope="{ row, index }" slot="pic">
								<div class="acea-row row-middle row-center-wrapper"
									@click="modalPicTap('dan', 'duopi', index)">
									<div class="pictrue pictrueTab" v-if="oneFormBatch[0].pic">
										<img v-lazy="oneFormBatch[0].pic" />
									</div>
									<div class="upLoad pictrueTab acea-row row-center-wrapper" v-else>
										<Icon type="ios-camera-outline" size="26" class="iosfont" />
									</div>
								</div>
							</template>
							<template slot-scope="{ row, index }" slot="price">
								<InputNumber v-model="oneFormBatch[0].price" :min="0" class="priceBox"></InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="settle_price" v-if='merchantType == 2'>
								<InputNumber v-model="oneFormBatch[0].settle_price" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="cost">
								<InputNumber v-model="oneFormBatch[0].cost" :min="0" class="priceBox"></InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="ot_price">
								<InputNumber v-model="oneFormBatch[0].ot_price" :min="0" class="priceBox"></InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="stock">
								<InputNumber v-model="oneFormBatch[0].stock" :min="0"
									:disabled="formValidate.product_type == 1 || openErp" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="bar_code">
								<Input v-model="oneFormBatch[0].bar_code"></Input>
							</template>
							<template slot-scope="{ row, index }" slot="code">
								<Input v-model="oneFormBatch[0].code"></Input>
							</template>
							<template slot-scope="{ row, index }" slot="weight">
								<InputNumber v-model="oneFormBatch[0].weight" :step="0.1" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="volume">
								<InputNumber v-model="oneFormBatch[0].volume" :step="0.1" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="fictitious"
								v-if="formValidate.product_type == 1">
								<Button v-if="
					        !row.virtual_list && !row.stock
					      " @click="addVirtual(0, 'oneFormBatch')">添加卡密</Button>
								<span v-else class="seeCatMy"
									@click="seeVirtual(oneFormBatch[0], 'oneFormBatch', 0)">已设置</span>
							</template>
							<template slot-scope="{ row, index }" slot="action">
								<a @click="batchAdd">批量设置</a>
								<Divider type="vertical" />
								<a @click="batchDel">清空</a>
							</template>
						</Table>
					</FormItem>
					</Col>
					<!-- 多规格表格-->
					<Col span="24">
					<FormItem label="商品属性：" class="labeltop">
						<Table :data="manyFormValidate" :columns="formValidate.header" border>
							<template slot-scope="{ row, index }" v-for="(item,i) in attrData.length"
								:slot="'value'+(i+1)">
								<div :class="manyFormValidate[index].select?'selectOn':''">
									{{manyFormValidate[index]['value'+(i+1)]}}</div>
							</template>
							<template slot-scope="{ row, index }" slot="pic">
								<div class="acea-row row-middle row-center-wrapper"
									@click="modalPicTap('dan', 'duoTable', index)">
									<div class="pictrue pictrueTab" v-if="manyFormValidate[index].pic">
										<img v-lazy="manyFormValidate[index].pic" />
									</div>
									<div class="upLoad pictrueTab acea-row row-center-wrapper" v-else>
										<Icon type="ios-camera-outline" size="21" />
									</div>
								</div>
							</template>
							<template slot-scope="{ row, index }" slot="price">
								<InputNumber v-model="manyFormValidate[index].price" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="settle_price" v-if="merchantType == 2">
								<InputNumber v-model="manyFormValidate[index].settle_price" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="cost">
								<InputNumber v-model="manyFormValidate[index].cost" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="ot_price">
								<InputNumber v-model="manyFormValidate[index].ot_price" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="stock">
								<InputNumber v-model="manyFormValidate[index].stock" :min="0" :precision="0"
									:disabled="formValidate.product_type == 1 || openErp" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="fictitious"
								v-if="formValidate.product_type == 1">
								<Button v-if="(!row.virtual_list || !row.virtual_list.length) && !row.stock"
									@click="addVirtual(index, 'manyFormValidate')">添加卡密</Button>
								<span v-else class="seeCatMy"
									@click="seeVirtual(row, 'manyFormValidate', index)">已设置</span>
							</template>
							<template slot-scope="{ row, index }" slot="bar_code">
								<Input v-model="manyFormValidate[index].bar_code"></Input>
							</template>
							<template slot-scope="{ row, index }" slot="code">
								<Input v-model="manyFormValidate[index].code"></Input>
							</template>
							<template slot-scope="{ row, index }" slot="weight">
								<InputNumber v-model="manyFormValidate[index].weight" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="volume">
								<InputNumber v-model="manyFormValidate[index].volume" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="action">
								<div>
									<a @click="delAttrTable(index)">删除</a>
									<Divider type="vertical"/>
									<a style="margin-top:20px" @click="openPriceModal(index)">代理商价格设置</a>
								</div>
							
							</template>
						</Table>
					</FormItem>
					</Col>
					</Col>
					</Col>
					<Modal v-model="priceModal" title="代理商价格设置">
						<!-- {{extraPriceData}} -->
						<Table :data="currentExtraPriceData" :columns="priceColumns" border>
							<template slot-scope="{ row, index }" slot="level_name">
								  {{currentExtraPriceData[index].level_name}}
							</template>
							<template slot-scope="{ row, index }" slot="price">
								<InputNumber v-model="currentExtraPriceData[index].price"  :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="discount">
								<InputNumber v-model="currentExtraPriceData[index].discount" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="education_grant">
								<InputNumber v-model="currentExtraPriceData[index].education_grant" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="commission_rate">
								<InputNumber v-model="currentExtraPriceData[index].commission_rate" :min="0" class="priceBox">
								</InputNumber>
							</template>
						</Table>
						<div slot="footer">
						        <Button type="primary" @click="saveExtraPriceData">保存</Button>
						        <Button @click="priceModal = false">取消</Button>
						    </div>
					</Modal>
					<!-- 单规格表格-->
					<div v-if="formValidate.spec_type === 0 || formValidate.product_type == 4" style="width: 100%;">
						<Col span="24" v-if="formValidate.product_type != 4">
						<FormItem label="图片：" prop="image">
							<div class="pictrueBox" @click="modalPicTap('dan', 'danTable', 0)">
								<div class="pictrue" v-if="oneFormValidate[0].pic">
									<img v-lazy="oneFormValidate[0].pic" />
								</div>
								<div class="upLoad acea-row row-center-wrapper" v-else>
									<Input v-model="oneFormValidate[0].pic" class="input-display"></Input>
									<Icon type="ios-camera-outline" size="26" />
								</div>
							</div>
						</FormItem>
						</Col>
						<Col class="asterisk" span="24" v-if="formValidate.product_type == 4">
						<div class="asteriskInfo on2">*</div>
						<FormItem label="核销次数：">
							<InputNumber v-model="oneFormValidate[0].write_times" :min="1" :max="99999999"
								:precision="0" v-width="'50%'" placeholder="请输入核销次数"></InputNumber>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type == 4">
						<FormItem required label="核销时效：">
							<RadioGroup v-model="oneFormValidate[0].write_valid">
								<Radio :label="1">永久有效</Radio>
								<Radio :label="2">购买后几天有效</Radio>
								<Radio :label="3">固定有效期</Radio>
							</RadioGroup>
						</FormItem>
						</Col>
						<Col span="24" v-if="oneFormValidate[0].write_valid==2">
						<FormItem label="" prop="freight">
							<div class="acea-row row-middle">
								<InputNumber :min="1" v-model="oneFormValidate[0].days" placeholder="请输入有效天数"
									v-width="'50%'" />
								<span class="ml10">天</span>
							</div>
						</FormItem>
						</Col>
						<Col span="24" v-if="oneFormValidate[0].write_valid==3">
						<FormItem label="" prop="freight">
							<div class="acea-row row-middle">
								<DatePicker :editable="false" type="daterange" format="yyyy-MM-dd"
									placeholder="请选择固定有效期" @on-change="onchangeTime" v-width="'50%'"
									:value="oneFormValidate[0].section_time" v-model="oneFormValidate[0].section_time">
								</DatePicker>
							</div>
						</FormItem>
						</Col>
						<Col span="24" class="asterisk">
						<div class="asteriskInfo">*</div>
						<FormItem label="售价：">
							<InputNumber v-model="oneFormValidate[0].price" :min="0" :max="99999999" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24" class="asterisk" v-if="merchantType == 2">
						<div class="asteriskInfo on">*</div>
						<FormItem label="结算价：">
							<InputNumber v-model="oneFormValidate[0].settle_price" :min="0" :max="99999999"
								v-width="'50%'"></InputNumber>
						</FormItem>
						</Col>
						<Col span="24" class="asterisk">
						<!-- <div class="asteriskInfo on">*</div> -->
						<FormItem label="成本价：">
							<InputNumber v-model="oneFormValidate[0].cost" :min="0" :max="99999999" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24">
						<FormItem label="原价：">
							<InputNumber v-model="oneFormValidate[0].ot_price" :min="0" :max="99999999" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24">
						<FormItem label="代理商价格设置:">
							<Table :data="extraPriceData" :columns="priceColumns" border>
								<template slot-scope="{ row, index }" slot="level_name">
									  {{extraPriceData[index].level_name}}
								</template>
								<template slot-scope="{ row, index }" slot="price">
									<InputNumber v-model="extraPriceData[index].price" :min="0" class="priceBox">
									</InputNumber>
								</template>
								<template slot-scope="{ row, index }" slot="discount">
									<InputNumber v-model="extraPriceData[index].discount" :min="0" class="priceBox">
									</InputNumber>
								</template>
								<template slot-scope="{ row, index }" slot="education_grant">
									<InputNumber v-model="extraPriceData[index].education_grant" :min="0" class="priceBox">
									</InputNumber>
								</template>
								<template slot-scope="{ row, index }" slot="commission_rate">
									<InputNumber v-model="extraPriceData[index].commission_rate" :min="0" class="priceBox">
									</InputNumber>
								</template>
							</Table>
						</FormItem>
						</Col>
						<Col span="24" class="asterisk">
						<div class="asteriskInfo">*</div>
						<FormItem label="库存：">
							<InputNumber v-model="oneFormValidate[0].stock" :min="0" :max="99999999"
								:disabled="formValidate.product_type == 1 || openErp" :precision="0" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type != 4">
						<FormItem label="商品条形码：">
							<Input v-model.trim="oneFormValidate[0].bar_code" v-width="'50%'"
								placeholder="请输入商品条形码"></Input>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type != 4">
						<FormItem label="商品编号：">
							<Input v-model.trim="oneFormValidate[0].code" v-width="'50%'" placeholder="请输入商品编码"></Input>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type == 0">
						<FormItem label="重量（KG）：">
							<InputNumber v-model="oneFormValidate[0].weight" :min="0" :max="99999999" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type == 0">
						<FormItem label="体积(m³)：">
							<InputNumber v-model="oneFormValidate[0].volume" :min="0" :max="99999999" v-width="'50%'">
							</InputNumber>
						</FormItem>
						</Col>
						<Col span="24" v-if="formValidate.product_type == 1">
						<FormItem label="卡密设置：">
							<Button v-if="
				        !oneFormValidate[0].virtual_list.length
						&& !oneFormValidate[0].stock
				      " @click="addVirtual(0, 'oneFormValidate')">添加卡密</Button>
							<span v-else class="seeCatMy"
								@click="seeVirtual(oneFormValidate[0], 'oneFormValidate', 0)">已设置</span>
						</FormItem>
					
						</Col>
					</div>
				</Row>
				<!-- 商品详情 -->
				<Row v-show="currentTab === '3'" class="mb10">
					<Col span="16">
					<wangeditor style="width: 100%" :content="contents" @editorContent="getEditorContent"></wangeditor>
					</Col>
					<Col span="6" style="width: 33%">
					<div class="ifam">
						<div class="content" v-html="content"></div>
					</div>
					</Col>
				</Row>
				<!-- 物流设置 -->
				<Row v-show="currentTab === '4'">
					<Col v-bind="grid3">
					<FormItem label="配送方式：" prop="" required>
						<CheckboxGroup v-model="formValidate.delivery_type">
							<Checkbox label="1">快递</Checkbox>
							<!-- <Checkbox label="3">门店配送</Checkbox> -->
							<Checkbox label="2">自提</Checkbox>
						</CheckboxGroup>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="运费设置：">
						<RadioGroup v-model="formValidate.freight">
							<Radio :label="1">包邮</Radio>
							<Radio :label="2">固定邮费</Radio>
							<Radio :label="3">运费模板</Radio>
						</RadioGroup>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.freight == 2">
					<FormItem label="" prop="freight">
						<div class="acea-row row-middle">
							<InputNumber :min="0" v-model="formValidate.postage" placeholder="请输入金额"
								class="perW20 maxW" />
							<span class="ml10">元</span>
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.freight == 3">
					<FormItem label="" prop="">
						<div class="acea-row">
							<Select v-model="formValidate.temp_id" clearable class="perW20 maxW">
								<Option v-for="(item, index) in templateList" :value="item.id" :key="index">
									{{ item.name }}</Option>
							</Select>
							<Button @click="editTemp" class="ml15" v-if="formValidate.temp_id">查看运费模板</Button>
							<Button @click="addTemp" class="ml15" v-else>添加运费模板</Button>
						</div>
					</FormItem>
					</Col>
				</Row>
				<!-- 营销设置 -->
				<Row v-show="currentTab === '5'">
					<Col span="24">
					<FormItem label="已售数量：">
						<InputNumber v-width="'50%'" :min="0" :max="999999" v-model="formValidate.ficti"
							placeholder="请输入已售数量" />
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="排序：">
						<InputNumber :min="0" :max="999999" v-width="'50%'" v-model="formValidate.sort"
							placeholder="请输入排序" />
					</FormItem>
					</Col>
					<Col span="24">
					<div class="lines"></div>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="赠送积分：" prop="give_integral">
						<InputNumber v-width="'50%'" v-model="formValidate.give_integral" :min="0" :max="999999"
							placeholder="请输入积分" />
					</FormItem>
					</Col>
					<Col v-bind="grid3" v-if="merchantType == 0">
					<FormItem label="赠送优惠券：">
						<div v-if="couponName.length" class="mb20">
							<Tag closable v-for="(item, index) in couponName" :key="index"
								@on-close="handleClose(item)">{{ item.title }}</Tag>
						</div>
						<Button type="primary" @click="addCoupon">添加优惠券</Button>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="关联用户标签：" prop="label_id" class="labelClass">
						<div class="labelInput acea-row row-between-wrapper" @click="openLabel">
							<div style="width: 90%;">
								<div v-if="dataLabel.length">
									<Tag closable v-for="(item,index) in dataLabel" :key="index"
										@on-close="closeLabel(item)">{{item.label_name}}</Tag>
								</div>
								<span class="span" v-else>选择用户关联标签</span>
							</div>
							<div class="iconfont iconxiayi"></div>
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="仅会员可见：">
						<i-switch v-model="formValidate.is_vip_product" :true-value="1" :false-value="0" size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
						<div class="tips">开启后仅付费会员可以看见并购买此商品</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="单独设置：">
						<CheckboxGroup class="checkAlls" v-model="formValidate.is_sub" @on-change="checkAllGroupChange">
							<Checkbox :label="1">佣金设置（数字即返佣金额）</Checkbox>
							<Checkbox :label="0">付费会员价</Checkbox>
						</CheckboxGroup>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.is_sub.length">
					<!--单规格返佣-->
					<FormItem label="商品属性：" v-if="formValidate.spec_type === 0">
						<Table :data="oneFormValidate" :columns="columnsInstall" border>
							<template slot-scope="{ row, index }" slot="pic">
								<div class="pictrue pictrueTab">
									<img v-lazy="oneFormValidate[0].pic" />
								</div>
							</template>
							<template slot-scope="{ row, index }" slot="price">{{
			        oneFormValidate[0].price
			      }}</template>
							<template slot-scope="{ row, index }" slot="cost">{{
			        oneFormValidate[0].cost
			      }}</template>
							<template slot-scope="{ row, index }" slot="ot_price">{{
			        oneFormValidate[0].ot_price
			      }}</template>
							<template slot-scope="{ row, index }" slot="stock">{{
			        oneFormValidate[0].stock
			      }}</template>
							<template slot-scope="{ row, index }" slot="bar_code">{{
			        oneFormValidate[0].bar_code
			      }}</template>
							<template slot-scope="{ row, index }" slot="code">{{
							  oneFormValidate[0].code
							}}</template>
							<template slot-scope="{ row, index }" slot="weight">{{
			        oneFormValidate[0].weight
			      }}</template>
							<template slot-scope="{ row, index }" slot="volume">{{
			        oneFormValidate[0].volume
			      }}</template>
							<template slot-scope="{ row, index }" slot="brokerage">
								<InputNumber v-model="oneFormValidate[0].brokerage" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="brokerage_two">
								<InputNumber v-model="oneFormValidate[0].brokerage_two" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="vip_price">
								<InputNumber v-model="oneFormValidate[0].vip_price" :min="0" class="priceBox">
								</InputNumber>
							</template>
						</Table>
					</FormItem>
					<!--多规格返佣-->
					<FormItem label="批量设置：" v-if="formValidate.spec_type === 1">
						<span v-if="formValidate.is_sub.indexOf(1) > -1">
							一级返佣：<div class="input-number columnsBox perW20">
								<InputNumber placeholder="请输入一级返佣" :min="0" v-model="manyBrokerage"></InputNumber>
								<div class="input-suffix">元</div>
							</div>
							二级返佣：<div class="input-number columnsBox perW20">
								<InputNumber placeholder="请输入二级返佣" :min="0" v-model="manyBrokerageTwo"></InputNumber>
								<div class="input-suffix">元</div>
							</div>
						</span>
						<span v-if="formValidate.is_sub.indexOf(0) > -1">
							会员价：<InputNumber placeholder="请输入会员价" :min="0" class="columnsBox perW20"
								v-model="manyVipPrice"></InputNumber>
						</span>
						<Button type="primary" @click="brokerageSetUp">批量设置</Button>
					</FormItem>
					<FormItem label="商品属性：" v-if="formValidate.spec_type === 1 && manyFormValidate.length">
						<Table v-if="formValidate.is_sub" :data="manyFormValidate" :columns="columnsInstal2" border>
							<template slot-scope="{ row, index }" v-for="(item,i) in attrData.length"
								:slot="'value'+(i+1)">
								<div>{{manyFormValidate[index]['value'+(i+1)]}}</div>
							</template>
							<template slot-scope="{ row, index }" slot="pic">
								<div class="pictrue pictrueTab">
									<img v-lazy="manyFormValidate[index].pic" />
								</div>
							</template>
							<template slot-scope="{ row, index }" slot="price">{{
			        manyFormValidate[index].price
			      }}</template>
							<template slot-scope="{ row, index }" slot="cost">{{
			        manyFormValidate[index].cost
			      }}</template>
							<template slot-scope="{ row, index }" slot="ot_price">{{
			        manyFormValidate[index].ot_price
			      }}</template>
							<template slot-scope="{ row, index }" slot="stock">{{
			        manyFormValidate[index].stock
			      }}</template>
							<template slot-scope="{ row, index }" slot="bar_code">{{
			        manyFormValidate[index].bar_code
			      }}</template>
							<template slot-scope="{ row, index }" slot="code">{{
							  manyFormValidate[index].code
							}}</template>
							<template slot-scope="{ row, index }" slot="weight">{{
			        manyFormValidate[index].weight
			      }}</template>
							<template slot-scope="{ row, index }" slot="volume">{{
			        manyFormValidate[index].volume
			      }}</template>
							<template slot-scope="{ row, index }" slot="brokerage">
								<InputNumber v-model="manyFormValidate[index].brokerage" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="brokerage_two">
								<InputNumber v-model="manyFormValidate[index].brokerage_two" :min="0" class="priceBox">
								</InputNumber>
							</template>
							<template slot-scope="{ row, index }" slot="vip_price">
								<InputNumber v-model="manyFormValidate[index].vip_price" :min="0" class="priceBox">
								</InputNumber>
							</template>
						</Table>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<div class="lines"></div>
					</Col>
					<Col span="24">
					<FormItem label="是否限购：">
						<i-switch v-model="formValidate.is_limit" :true-value="1" :false-value="0" size="large"
							@on-change="limitTap">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.is_limit">
					<FormItem label="限购类型：">
						<RadioGroup v-model="formValidate.limit_type">
							<Radio :label="1">单次限购</Radio>
							<Radio :label="2">长期限购</Radio>
						</RadioGroup>
						<div class="tips">
							单次限购是限制每次下单最多购买的数量，长期限购是限制一个用户总共可以购买的数量
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.is_limit">
					<FormItem label="限购数量：">
						<InputNumber :min="1" v-model="formValidate.limit_num" placeholder="请输入限购数量"
							class="perW20 maxW" />
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.product_type == 0 && merchantType == 0">
					<FormItem label="预售商品：">
						<i-switch v-model="formValidate.is_presale_product" :true-value="1" :false-value="0"
							size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.product_type == 0 && formValidate.is_presale_product">
					<FormItem label="预售活动时间：" prop="presale_time">
						<div class="acea-row row-middle">
							<DatePicker :editable="false" :options="datePickerOptions" type="datetimerange"
								format="yyyy-MM-dd HH:mm" placeholder="请选择活动时间" @on-change="onchangeTime"
								:value="formValidate.presale_time" v-model="formValidate.presale_time" v-width="'50%'">
							</DatePicker>
						</div>
						<div class="tips">
							设置活动开启结束时间，用户可以在设置时间内发起参与预售
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.product_type == 0 && formValidate.is_presale_product">
					<FormItem label="发货时间：" prop="presale_day">
						<div class="acea-row row-middle">
							<span class="mr10">预售活动结束后</span>
							<InputNumber placeholder="请输入发货时间" :precision="0" :min="1" style="width: 100px;"
								v-model="formValidate.presale_day" />
							<span class="ml10">天之内</span>
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="优品推荐：">
						<i-switch v-model="formValidate.is_good" :true-value="1" :false-value="0" size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
					<FormItem label="猜你喜欢：">
						<i-switch v-model="formValidate.is_hot" :true-value="1" :false-value="0" size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
				<!-- 	<FormItem label="商品推荐：">
			    <CheckboxGroup
			      v-model="formValidate.recommend"
				  class="checkAlls"
			    >
			      <Checkbox label="is_hot">热卖单品&猜你喜欢</Checkbox>
			      <Checkbox label="is_benefit">促销单品</Checkbox>
			      <Checkbox label="is_best">精品推荐</Checkbox>
			      <Checkbox label="is_new">首发新品</Checkbox>
			      <Checkbox label="is_good">优品推荐</Checkbox>
			    </CheckboxGroup>
			  </FormItem> -->
					</Col>
					<Col v-bind="grid3" v-if="merchantType == 0">
					<FormItem label="活动优先级：">
						<div class="color-list acea-row row-middle">
							<div class="color-item acea-row row-center-wrapper" :class="activity[color]"
								v-for="(color,index) in formValidate.activity" v-dragging="{
			          item: color,
			          list: formValidate.activity,
			          group: 'color',
			        }" :key="index">
								<div class="num">{{index+1}}</div>
								<div> {{ color }}</div>
							</div>
							<div class="tips">可拖动按钮调整活动的优先展示顺序</div>
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="merchantType == 0">
					<FormItem label="选择优品推荐商品：">
						<div class="acea-row">
							<div class="pictrue" v-for="(item, index) in goodsData" :key="index">
								<img v-lazy="item.image" />
								<Button shape="circle" icon="md-close" @click.native="bindDelete(index)"
									class="btndel"></Button>
							</div>
							<div v-if="goodsData.length < 12" class="upLoad acea-row row-center-wrapper"
								@click="goodsTap">
								<Icon type="ios-camera-outline" size="26" />
							</div>
						</div>
					</FormItem>
					</Col>
				</Row>
				<!-- 其他设置-->
				<Row v-show="currentTab === '6'">
					<Col span="24">
					<FormItem label="商品关键字：" prop="">
						<Input v-model="formValidate.keyword" placeholder="请输入商品关键字" v-width="'50%'" />
						<div class="tips">通过命中关键字搜索对应商品，方便用户查找</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品简介：" prop="">
						<Input v-model="formValidate.store_info" type="textarea" :rows="3" placeholder="请输入商品简介"
							v-width="'50%'" />
						<div class="tips">微信分享商品时，分享的卡片上会显示商品简介
							<Poptip placement="bottom" trigger="hover" width="256" transfer padding="8px">
								<a>查看示例</a>
								<div class="exampleImg" slot="content">
									<img :src="`${baseURL}/statics/system/productDesc.png`" alt="" />
								</div>
							</Poptip>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品口令：">
						<Input v-model="formValidate.command_word" type="textarea" :rows="3" placeholder="请输入商品口令"
							v-width="'50%'" />
						<div class="tips">可将淘宝、抖音等平台的口令复制在此处，用户点击商城商品详情后会自动复制口令，随后打开淘宝等平台会自动弹出口令弹窗
							<Poptip placement="bottom" trigger="hover" width="256" transfer padding="8px">
								<a>查看示例</a>
								<div class="exampleImg" slot="content">
									<div style="margin-bottom: 10px;font-size: 12px;line-height: 18px;color: #666666;">
										商品口令需在淘宝、天猫、京东、苏<br>宁、1688上有同款商品，复制口令后<br>可在相关应用中打开(下图为淘宝展示)</div>
									<img :src="`${baseURL}/statics/system/productCommandWord.png`" alt="" />
								</div>
							</Poptip>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品推荐图：">
						<div class="acea-row">
							<div v-if="formValidate.recommend_image" class="pictrue">
								<img v-lazy="formValidate.recommend_image" />
								<Button shape="circle" icon="md-close" @click.native="formValidate.recommend_image = ''"
									class="btndel"></Button>
							</div>
							<div v-else class="upLoad acea-row row-center-wrapper"
								@click="modalPicTap('dan', 'recommend_image')">
								<Icon type="ios-camera-outline" size="26" />
							</div>
							<Input v-model="formValidate.recommend_image" class="input-display"></Input>
						</div>
						<div class="tips">在特殊的商品分类样式中显示(建议图片比例5:2)
							<Poptip placement="bottom" trigger="hover" width="256" transfer padding="8px">
								<a>查看示例</a>
								<div class="exampleImg" slot="content">
									<img :src="`${baseURL}/statics/system/productRecommendImage.png`" alt="" />
								</div>
							</Poptip>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="服务保障：">
						<CheckboxGroup v-model="formValidate.ensure_id" class="checkAlls">
							<Checkbox :label="item.id" v-for="(item,index) in ensureData" :key="index">{{item.name}}
							</Checkbox>
						</CheckboxGroup>
						<div class="tips">
							<Poptip placement="bottom" trigger="hover" width="256" transfer padding="8px">
								<a>查看示例</a>
								<div class="exampleImg" slot="content">
									<img :src="`${baseURL}/statics/system/productEnsure.png`" alt="" />
								</div>
							</Poptip>
						</div>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="商品参数：" prop="">
						<Select v-model="formValidate.specs_id" clearable filterable v-width="'50%'"
							placeholder="请输入商品参数" @on-change="specsInfo">
							<Option v-for="(item, index) in specsData" :value="item.id" :key="index">{{ item.name }}
							</Option>
						</Select>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.specs_id">
					<FormItem label="" props="">
						<Table border :columns="specsColumns" :data="specsList" ref="table" class="specsList"
							width="700">
							<template slot-scope="{ row, index }" slot="action">
								<a @click="delSpecs(index)" v-if="index>0">删除</a>
							</template>
						</Table>
						<Button class="mt20" @click="addSpecs">添加参数</Button>
					</FormItem>
					</Col>
					<Col span="24" v-if="formValidate.product_type">
					<FormItem label="支持退款：" props="status" label-for="status">
						<i-switch v-model="formValidate.is_support_refund" :true-value="1" :false-value="0"
							size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
					</FormItem>
					</Col>
					<Col span="24">
					<FormItem label="自定义留言：">
						<i-switch v-model="customBtn" @on-change="customMessBtn" size="large">
							<span slot="open">开启</span>
							<span slot="close">关闭</span>
						</i-switch>
						<div class="mt10" v-if="customBtn">
							<Select v-model="formValidate.system_form_id" filterable v-width="'50%'" placeholder="请选择"
								@on-change="changeForm">
								<Option v-for="(item, index) in formList" :value="item.id" :key="index">{{ item.name }}
								</Option>
							</Select>
						</div>
					</FormItem>
					</Col>
					<Col span="24" v-if="customBtn && formValidate.system_form_id">
					<FormItem label="" props="">
						<Table border :columns="formColumns" :data="formTypeList" ref="table" class="specsList on">
							<template slot-scope="{ row }" slot="require">
								<span>{{row.require?'必填':'不必填'}}</span>
							</template>
						</Table>
					</FormItem>
					</Col>
					<!-- <Col span="24">
				  <FormItem label="自定义留言：">
				    <i-switch
				      v-model="customBtn"
				      @on-change="customMessBtn"
				      size="large"
				    >
				      <span slot="open">开启</span>
				      <span slot="close">关闭</span>
				    </i-switch>
				    <div class="addCustom_content" v-if="customBtn">
				      <div
				        v-for="(item, index) in formValidate.custom_form"
				        type="flex"
				        :key="index"
				        class="custom_box"
				      >
				        <Input
				          v-model.trim="item.title"
				          :placeholder="'留言标题' + (index + 1)"
						  class="custom-input"
				        />
				        <Select
				          v-model="item.label"
						  class="select-add"

				        >
				          <Option
				            v-for="items in customList"
				            :value="items.value"
				            :key="items.value"
				            >{{ items.label }}</Option
				          >
				        </Select>
				        <Checkbox v-model="item.status" :true-value="1" :false-value="0">必填</Checkbox>
				        <div class="addfont" @click="delcustom(index)">删除</div>
				      </div>
				    </div>
				    <div class="addCustomBox" v-show="customBtn">
				      <div class="btn" @click="addcustom">+ 添加表单</div>
				      <div class="tips">用户下单时需填写的信息，最多可设置10条</div>
				    </div>
				  </FormItem>
				</Col> -->
				</Row>
				<!-- <Row v-show="currentTab === '6'">
          <Col span="24">
            <FormItem label="商品详情：">
              <vue-ueditor-wrap
                v-model="formValidate.description"
                @beforeInit="addCustomDialog"
                :config="myConfig"
                style="width: 90%"
              ></vue-ueditor-wrap>
            </FormItem>
          </Col>
        </Row> -->

				<Spin size="large" fix v-if="spinShow"></Spin>
			</Form>
			<Modal v-model="modalPic" width="960px" scrollable footer-hide closable title="上传商品图" :mask-closable="false"
				:z-index="1">
				<uploadPictures :isChoice="isChoice" @getPic="getPic" @getPicD="getPicD" :gridBtn="gridBtn"
					:gridPic="gridPic" v-if="modalPic"></uploadPictures>
			</Modal>
		</Card>
		<Card :bordered="false" dis-hover class="fixed-card"
			:style="{left: `${!menuCollapse?'200px':isMobile?'0':'80px'}`}">
			<Form>
				<FormItem>
					<Button v-if="currentTab !== '1'" @click="upTab">上一步</Button>
					<Button type="primary" class="submission" v-if="currentTab !== '6'"
						@click="downTab('formValidate')">下一步</Button>
					<Button type="primary" :disabled="openSubimit" class="submission"
						@click="handleSubmit('formValidate')" v-if="$route.params.id || currentTab === '6'">保存</Button>
				</FormItem>
			</Form>
		</Card>
		<freightTemplate :template="template" :merchantType="merchantType" v-on:changeTemplate="changeTemplate"
			ref="templates"></freightTemplate>
		<add-attr ref="addattr" @getList="userSearchs"></add-attr>
		<coupon-list ref="couponTemplates" @nameId="nameId" :couponids="formValidate.coupon_ids" :updateIds="updateIds"
			:updateName="updateName"></coupon-list>
		<!-- 生成淘宝京东表单-->
		<Modal v-model="modals" @on-cancel="cancel" class="Box" class-name="vertical-center-modal" scrollable
			footer-hide closable title="复制淘宝、天猫、京东、苏宁、1688" :mask-closable="false" width="800" height="500">
			<tao-bao ref="taobaos" v-if="modals" @on-close="onClose"></tao-bao>
		</Modal>
		<!-- 商品列表 -->
		<Modal v-model="goodsModals" title="商品列表" footerHide scrollable width="900" @on-cancel="goodCancel">
			<goods-list v-if="goodsModals" ref="goodslist" @getProductId="getProductId" :ischeckbox="true"></goods-list>
		</Modal>
		<!-- 用户标签 -->
		<Modal v-model="labelShow" scrollable title="选择用户标签" :closable="true" width="540" :footer-hide="true"
			:mask-closable="false">
			<userLabel ref="userLabel" @activeData="activeData" @close="labelClose"></userLabel>
		</Modal>
		<!-- 商品标签 -->
		<Modal v-model="storeLabelShow" scrollable title="选择商品标签" :closable="true" width="540" :footer-hide="true"
			:mask-closable="false">
			<storeLabelList ref="storeLabel" @activeData="activeStoreData" @close="storeLabelClose"></storeLabelList>
		</Modal>
		<menus-from :formValidate="formBrand" :fromName='1' ref="menusFrom"></menus-from>
		<Modal v-model="attrShow" scrollable title="请选择商品规格" :closable="false" width="320" :footer-hide="true"
			:mask-closable="false">
			<attr-list :attrs="attrsList" @activeData="activeAttr" @close="labelAttr" @subAttrs="subAttrs"
				v-if="attrShow"></attr-list>
		</Modal>
		<Modal v-model="carMyShow" scrollable title="添加卡密" closable width="700" :footer-hide="true"
			:mask-closable="false">
			<add-carMy ref="addCarMy" :virtualList="virtualList" @changeVirtual="changeVirtual" @fixdBtn="fixdBtn"
				@closeCarMy="closeCarMy"></add-carMy>
		</Modal>
	</div>
</template>

<script>
	// import COS from 'cos-js-sdk-v5'
	import {
		mapState,
		mapMutations
	} from "vuex";
	import Setting from "@/setting";
	import util from "@/libs/util";
	import vuedraggable from "vuedraggable";
	import uploadPictures from "@/components/uploadPictures";
	import freightTemplate from "@/components/freightTemplate";
	import wangeditor from "@/components/wangEditor/index.vue";

	import menusFrom from "../productBrand/components/menusFrom";
	import userLabel from "@/components/labelList";
	import storeLabelList from "@/components/storeLabelList";
	import couponList from "@/components/couponList";
	import goodsList from '@/components/goodsList/index';
	import addAttr from "../productAttr/addAttr";
	import attrList from "../components/attrList";
	import addCarMy from "../components/addCarMy";
	import VueUeditorWrap from "vue-ueditor-wrap";
	import taoBao from './taoBao'
	import {
		productInfoApi,
		cascaderListApi,
		productAddApi,
		generateAttrApi,
		productGetRuleApi,
		productGetTemplateApi,
		productGetTempKeysApi,
		checkActivityApi,
		labelListApi,
		productCache,
		cacheDelete,
		brandList,
		productCreateApi,
		productAllUnit,
		productUnitCreate,
		uploadType,
		productAllEnsure,
		productLabelAdd,
		productAllSpecs,
		allSystemForm,
		levelList
	} from "@/api/product";
	import {
		systemFormInfo
	} from '@/api/setting'
	import {
		getSupplierList
	} from '@/api/supplier'
	import {
		erpConfig
	} from "@/api/erp";
	import {
		uploadByPieces
	} from "@/utils/upload"; //引入uploadByPieces方法
	export default {
		name: "product_productAdd",
		components: {
			VueUeditorWrap,
			uploadPictures,
			freightTemplate,
			goodsList,
			addAttr,
			couponList,
			taoBao,
			userLabel,
			menusFrom,
			attrList,
			addCarMy,
			storeLabelList,
			wangeditor,
			draggable: vuedraggable,
		},
		data() {
			return {
				priceModal:false,
				formTypeList: [],
				formColumns: [{
						title: '表单标题',
						key: 'title',
						minWidth: 100
					},
					{
						title: '表单类型',
						key: 'name',
						minWidth: 100
					},
					{
						title: '是否必填',
						slot: 'require',
						minWidth: 100
					}
				],
				specsList: [],
				supplierList: [],
				specsColumns: [{
						title: '参数名称',
						key: 'name',
						align: 'center',
						width: 150,
						render: (h, params) => {
							return h("div", [
								h("Input", {
									props: {
										value: params.row.name,
										placeholder: '请输入参数名称'
									},
									on: {
										"on-change": (e) => {
											params.row.name = e.target.value;
											this.specsList[params.index].name = e.target.value;
										},
									},
								}),
							]);
						}
					},
					{
						title: '参数值',
						key: 'value',
						align: 'center',
						width: 300,
						render: (h, params) => {
							return h("div", [
								h("Input", {
									props: {
										value: params.row.value,
										placeholder: '请输入参数值'
									},
									on: {
										"on-change": (e) => {
											params.row.value = e.target.value;
											this.specsList[params.index].value = e.target.value;
										},
									},
								}),
							]);
						}
					},
					{
						title: '排序',
						key: 'sort',
						align: 'center',
						width: 100,
						render: (h, params) => {
							return h("div", [
								h("InputNumber", {
									props: {
										value: parseInt(params.row.sort) || 0,
										placeholder: '排序',
										precision: 0
									},
									on: {
										"on-change": (e) => {
											params.row.sort = e;
											this.specsList[params.index].sort = e;
										},
									},
								}),
							]);
						}
					},
					{
						title: '操作',
						slot: 'action',
						align: 'center',
						minWidth: 120
					}
				],
				//自定义留言下拉选择
				customList: [{
						value: "text",
						label: "文本框",
					},
					{
						value: "number",
						label: "数字",
					},
					{
						value: "email",
						label: "邮件",
					},
					{
						value: "data",
						label: "日期",
					},
					{
						value: "time",
						label: "时间",
					},
					{
						value: "id",
						label: "身份证",
					},
					{
						value: "phone",
						label: "手机号",
					},
					{
						value: "img",
						label: "图片",
					},
				],
				headTab: [{
						title: "基础信息",
						name: "1"
					},
					{
						title: "规格库存",
						name: "2"
					},
					{
						title: "商品详情",
						name: "3"
					},
					{
						title: "物流设置",
						name: "4"
					},
					{
						title: "营销设置",
						name: "5"
					},
					{
						title: "其他设置",
						name: "6"
					},
				],
				productType: [{
						name: "普通商品",
						title: "物流发货",
						id: 0
					},
					{
						name: "卡密/网盘",
						title: "自动发货",
						id: 1
					},
					{
						name: "虚拟商品",
						title: "虚拟发货",
						id: 3
					},
					{
						name: "次卡商品",
						title: "到店核销",
						id: 4
					},
				],
				priceHeader:[],
				virtualList: [],
				carMyShow: false, //是否开启卡密弹窗
				recommend: [], //商品推荐
				customBtn: false, //自定义留言开关
				attrShow: false,
				content: "",
				contents: "",
				seletVideo: 0,
				fileUrl: Setting.apiBaseURL + "/file/upload",
				fileUrl2: Setting.apiBaseURL + "/file/video_upload",
				baseURL: Setting.apiBaseURL.replace(/adminapi/, ''),
				upload_type: "", //视频上传类型 1 本地上传 2 3 4 OSS上传
				uploadData: {}, // 上传参数
				header: {},
				dataLabel: [],
				storeDataLabel: [],
				labelShow: false,
				storeLabelShow: false,
				props: {
					emitPath: false,
					multiple: true,
					checkStrictly: true
				},
				type: 0,
				goodsModals: false,
				off_show: 0,
				modals: false,
				spinShow: false,
				openSubimit: false,
				grid2: {
					xl: 10,
					lg: 12,
					md: 12,
					sm: 24,
					xs: 24,
				},
				grid3: {
					xl: 18,
					lg: 18,
					md: 20,
					sm: 24,
					xs: 24,
				},
				// 批量设置表格data
				oneFormBatch: [{
					attr: "全部",
					pic: "",
					price: 0,
					settle_price: 0,
					cost: 0,
					ot_price: 0,
					stock: 0,
					bar_code: "",
					code: "",
					weight: 0,
					volume: 0,
				}, ],
				// 规格数据
				formDynamic: {
					attrsName: "",
					attrsVal: "",
				},
				formDynamicNameData: [],
				isBtn: false,
				myConfig: {
					autoHeightEnabled: false, // 编辑器不自动被内容撑高
					initialFrameHeight: 500, // 初始容器高度
					initialFrameWidth: "100%", // 初始容器宽度
					UEDITOR_HOME_URL: "/admin/UEditor/",
					serverUrl: "",
				},
				columnsCarMy: [],
				extraPriceData:[],
				priceColumns:[{
					title: "等级",
					slot: "level_name",
					align: "center",
					minWidth: 80,
				},{
					title: "价格(元)",
					slot: "price",
					align: "center",
					minWidth: 80,
				},
				// {
				// 	title: "折扣",
				// 	slot: "discount",
				// 	align: "center",
				// 	minWidth: 80,
				// },
				{
					title: "平级教育金(%)",
					slot: "education_grant",
					align: "center",
					minWidth: 80,
				},
				// {
				// 	title: "佣金",
				// 	slot: "commission_rate",
				// 	align: "center",
				// 	minWidth: 80,
				// },
				],
				columns2: [{
						title: "商品规格",
						slot: "attr",
						align: "center",
						minWidth: 80,
					},
					{
						title: "图片",
						slot: "pic",
						align: "center",
						minWidth: 80,
					},
					{
						title: "售价",
						slot: "price",
						align: "center",
						minWidth: 95,
					},
					{
						title: "成本价",
						slot: "cost",
						align: "center",
						minWidth: 95,
					},
					{
						title: "原价",
						slot: "ot_price",
						align: "center",
						minWidth: 95,
					},
					{
						title: "库存",
						slot: "stock",
						align: "center",
						minWidth: 95,
					},
					{
						title: "商品条形码",
						slot: "bar_code",
						align: "center",
						minWidth: 120,
					},
					{
						title: "商品编号",
						slot: "code",
						align: "center",
						minWidth: 120,
					},
					{
						title: "重量（KG）",
						slot: "weight",
						align: "center",
						minWidth: 95,
					},
					{
						title: "体积(m³)",
						slot: "volume",
						align: "center",
						minWidth: 95,
					},
					{
						title: "操作",
						slot: "action",
						// fixed: "right",
						align: "center",
						minWidth: 140,
					},
				],
				columns: [],
				columnsInstall: [],
				columnsInstal2: [],
				gridPic: {
					xl: 6,
					lg: 8,
					md: 12,
					sm: 12,
					xs: 12,
				},
				gridBtn: {
					xl: 4,
					lg: 8,
					md: 8,
					sm: 8,
					xs: 8,
				},
				formValidate: {
					system_form_id: 0, //自定义表单id
					// supplier_id:0,//供应商
					is_presale_product: 0, //预售商品开关
					is_limit: 0, //是否限购开关
					limit_type: 1, //1单次限购，2长期限购
					limit_num: 1, //限购数量
					is_vip_product: 0, //付费会员专属开关
					is_support_refund: 0,
					disk_info: "", //卡密简介
					presale_day: 1, //预售发货时间-结束
					presale_time: [],
					auto_on_time: '',
					video_open: false, //视频按钮是否显示
					store_name: "",
					freight: 1, //运费设置
					postage: 0, //设置运费金额
					custom_form: [], //自定义留言
					cate_id: [],
					label_id: [],
					ensure_id: [],
					keyword: "",
					unit_name: "",
					specs_id: 0,
					store_info: "",
					bar_code: "",
					code: "",
					image: "",
					recommend_image: "",
					slider_image: [],
					description: "",
					ficti: 0,
					give_integral: 0,
					sort: 0,
					is_show: 1,
					is_hot: 0,
					is_benefit: 0,
					is_best: 0,
					is_new: 0,
					is_good: 0,
					is_postage: 0,
					is_sub: [],
					id: 0,
					spec_type: 0,
					video_link: "",
					temp_id: "",
					attrs: [],
					items: [{
						pic: "",
						price: 0,
						cost: 0,
						ot_price: 0,
						stock: 0,
						bar_code: "",
						code: "",
					}, ],
					activity: ["默认", "秒杀", "砍价", "拼团"],
					couponName: [],
					header: [],
					selectRule: "",
					coupon_ids: [],
					command_word: "",
					delivery_type: ['1'],
					specs: [],
					recommend_list: [],
					brand_id: [],
					product_type: 0
				},
				ruleList: [],
				templateList: [],
				createBnt: false,
				showIput: false,
				manyFormValidate: [],
				// 单规格表格data
				oneFormValidate: [{
					pic: "",
					price: 0,
					settle_price: 0,
					cost: 0,
					ot_price: 0,
					stock: 0,
					bar_code: "",
					code: "",
					weight: 0,
					volume: 0,
					brokerage: 0,
					brokerage_two: 0,
					vip_price: 0,
					virtual_list: [],
					write_times: 0, //核销次数
					write_valid: 1, //核销时效
					days: 1
				}, ],
				images: [],
				imagesTable: "",
				currentTab: "1",
				isChoice: "",
				grid: {
					xl: 8,
					lg: 8,
					md: 12,
					sm: 24,
					xs: 24,
				},
				loading: false,
				modalPic: false,
				template: false,
				uploadList: [],
				treeSelect: [],
				labelSelect: [],
				ensureData: [],
				specsData: [],
				picTit: "",
				tableIndex: 0,
				ruleValidate: {
					store_name: [{
						required: true,
						message: "请输入商品名称",
						trigger: "blur"
					}, ],
					code: [{
						required: true,
						message: "请输入商品编码",
						trigger: "blur"
					}, ],
					cate_id: [{
						required: true,
						message: "请选择商品分类",
						trigger: "change",
						type: "array"
					}, ],
					keyword: [{
						required: true,
						message: "请输入商品关键字",
						trigger: "blur"
					}, ],
					unit_name: [{
						required: true,
						message: "请输入单位",
						trigger: "change",
					}, ],
					store_info: [{
						required: true,
						message: "请输入商品简介",
						trigger: "blur"
					}, ],
					//image: [{ required: true, message: "请上传商品图", trigger: "change" }],
					slider_image: [{
						required: true,
						message: "请上传商品轮播图",
						type: "array",
						trigger: "change",
					}, ],
					spec_type: [{
						required: true,
						message: "请选择商品规格",
						trigger: "change"
					}, ],
					selectRule: [{
						required: true,
						message: "请选择商品规格属性",
						trigger: "change"
					}, ],
					give_integral: [{
						type: "integer",
						message: "请输入整数"
					}],
					// delivery_type:[
					//   { required: true, type: 'array', min: 1, message: '请选择配送方式', trigger: 'change' },
					// ]
				},
				manyBrokerage: 0,
				manyBrokerageTwo: 0,
				manyVipPrice: 0,
				upload: {
					videoIng: false, // 是否显示进度条；
				},
				videoIng: false, // 是否显示进度条；
				progress: 0, // 进度条默认0
				videoLink: "",
				attrs: [],
				activity: {
					默认: "colorBlue",
					秒杀: "colorBlue",
					砍价: "colorBlue",
					拼团: "colorBlue"
				},
				couponName: [],
				updateIds: [],
				updateName: [],
				rakeBack: [{
						title: "一级返佣（元）",
						slot: "brokerage",
						align: "center",
						width: 95,
					},
					{
						title: "二级返佣（元）",
						slot: "brokerage_two",
						align: "center",
						width: 95,
					},
				],
				member: [{
					title: "会员价",
					slot: "vip_price",
					align: "center",
					width: 95,
				}, ],
				headerCarMy: {
					title: "卡密设置",
					slot: "fictitious",
					align: "center",
					width: 95,
				},
				columnsInstalM: [],
				moveIndex: "",
				goodsData: [],
				brandData: [],
				unitNameList: [],
				formBrand: {},
				attrsList: [],
				activeAtter: [],
				tabIndex: 0,
				tabName: "",
				attrData: [],
				datePickerOptions: {
					disabledDate(date) {
						return date && date.valueOf() < Date.now() - 86400000;
					}
				},
				openErp: false,
				merchantType: 0, //0:平台商品；1:门店商品；2:供应商商品
				formList: [],
				priceModalIndex:0,
				currentExtraPriceData:[]
			};
		},
		computed: {
			...mapState("admin/layout", ["isMobile", "menuCollapse"]),
			labelWidth() {
				return this.isMobile ? undefined : 120;
			},
			labelPosition() {
				return this.isMobile ? "top" : "right";
			},
			labelBottom() {
				return this.isMobile ? undefined : 15;
			},
			startPickOptions() {
				const that = this;
				return {
					disabledDate(time) {
						if (that.formValidate.auto_off_time) {
							return (
								time.getTime() > new Date(that.formValidate.auto_off_time).getTime()
							)
						}
						return ''
					}
				}
			},
			endPickOptions() {
				const that = this;
				return {
					disabledDate(time) {
						if (that.formValidate.is_show == '1') {
							return time.getTime() < Date.now();
						}
						if (that.formValidate.auto_on_time) {
							return (
								time.getTime() < new Date(that.formValidate.auto_on_time).getTime()
							)
						}
						return ''
					}
				}
			}
		},
		created() {
			this.getSupplierList();
			this.columns = this.columns2.slice(1, 10);
			let data = JSON.parse(JSON.stringify(this.columns2));
			data.splice(8, 2, this.headerCarMy);
			this.columnsCarMy = data;
			let fictitious = JSON.parse(JSON.stringify(this.columns2));
			fictitious.splice(8, 2);
			this.columnsFictitious = fictitious;
			this.getToken();
			this.getErpConfig();
			this.getLevelList();
			// this.columnsInstall = this.columns2.slice(0, 4).concat(this.columnsInstall);
			// this.columnsInsta8 = this.columns2.slice(0, 4).concat(this.columnsInsta8);
		},
		mounted() {
			this.setCopyrightShow({
				value: false
			});
			if ((this.$route.params.id !== "0" && this.$route.params.id) || this.$route.query.copy) {
				this.getInfo();
			} else if (this.$route.params.id === "0") {
				console.log('添加商品')
				this.getLevelList();
				productCache()
					.then((res) => {
						let data = res.data.info;
						if (!Array.isArray(data)) {
							let cate_id = data.cate_id.map(Number);
							let label_id = data.label_id.map(Number);
							this.attrs = data.items || [];
							let ids = [];
							// let names = [];
							if (data.coupons) {
								data.coupons.map((item) => {
									ids.push(item.id);
									// names.push(item.title);
								});
								this.couponName = data.coupons;
							}
							let brandIds = [];
							data.brand_id.forEach(item => {
								brandIds.push(item.toString())
							})
							this.formValidate = data;
							this.formTypeList = data.custom_form_info || [];
							// this.couponName = data.coupons;
							// that.couponName = names;
							this.formValidate.brand_id = brandIds;
							this.formValidate.coupon_ids = ids;
							this.formValidate.is_limit = this.formValidate.is_limit ? 1 : 0;
							this.formValidate.limit_type = parseInt(this.formValidate.limit_type);
							this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
							this.updateIds = ids;
							this.updateName = data.coupons;
							this.formValidate.cate_id = cate_id;
							this.dataLabel = data.label_id;
							this.storeDataLabel = data.store_label_id;
							this.specsList = data.specs;
							this.oneFormValidate = data.attrs;
							this.formValidate.header = [];
							this.generate(0);
							this.addmanyData(data.attrs);
							this.productTypeTap(2);
							this.columns = this.columns2.slice(1, 10);
							//this.manyFormValidate = data.attrs;
							this.formValidate.system_form_id = data.system_form_id || 0;
							if (this.formValidate.system_form_id) {
								this.customBtn = true;
							}
							this.spec_type = data.spec_type;
							if (data.spec_type === 0) {
								this.manyFormValidate = [];
							} else {
								this.createBnt = true;
								this.oneFormValidate = [{
									pic: data.slider_image[0],
									price: 0,
									settle_price: 0,
									cost: 0,
									ot_price: 0,
									stock: 0,
									bar_code: "",
									code: "",
									weight: 0,
									volume: 0,
									brokerage: 0,
									brokerage_two: 0,
									vip_price: 0,
									virtual_list: [],
									write_times: 0, //核销次数
									write_valid: 1, //核销时效
									days: 1
								}, ];
							}
							this.spinShow = false;
						}
					})
					.catch((err) => {
						this.$Message.error(err.msg);
					});
			}
			if (this.$route.query.type) {
				this.modals = true;
				this.type = this.$route.query.type;
			} else {
				this.type = 0;
			}
			this.goodsCategory();
			this.productGetRule();
			this.productGetTemplate();
			this.getBrandList();
			this.getAllUnit();
			this.uploadType();
			this.getProductAllEnsure();
			this.getProductAllSpecs();
			this.allFormList();
		},
		destroyed() {
			this.setCopyrightShow({
				value: true
			});
		},
		methods: {
			...mapMutations('admin/layout', [
				'setCopyrightShow'
			]),
			openPriceModal(index){
				console.log(index)
				console.log(this.manyFormValidate[index])
				this.currentExtraPriceData = JSON.parse(JSON.stringify(this.manyFormValidate[index].level_price_info));
				console.log("打开模态框，当前数据:", this.currentExtraPriceData);
				this.priceModalIndex = index; // 存储当前规格项的索引
				this.priceModal = true; // 打开模态框
			},
			saveExtraPriceData() {
			    this.manyFormValidate[this.priceModalIndex].level_price_info = JSON.parse(JSON.stringify(this.currentExtraPriceData));
			    this.priceModal = false; // 关闭模态框
			},
			ok() {
				this.$Message.info('Clicked ok');
			},
			cancel() {
				this.$Message.info('Clicked cancel');
			},
			changeForm(e) {
				this.getSystemFormInfo(e, {
					type: 1
				});
			},
			getLevelList(){
				levelList().then(res => {
					console.log(res)
					this.extraPriceData = res.data
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			getSystemFormInfo(e, data) {
				systemFormInfo(e, data).then(res => {
					this.formTypeList = res.data.info;
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			allFormList() {
				allSystemForm().then(res => {
					this.formList = res.data;
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			limitTap(e) {
				if (e) {
					this.formValidate.limit_type = (this.formValidate.is_limit && !this.formValidate.limit_type) ? 1 : 0
					this.formValidate.limit_num = (this.formValidate.is_limit && this.formValidate.limit_num == 0) ? 1 : 0
				} else {
					this.formValidate.limit_type = 0;
					this.formValidate.limit_num = 0;
				}
			},
			//erp配置
			getErpConfig() {
				erpConfig().then(res => {
					this.openErp = res.data.open_erp;
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			delSpecs(index) {
				this.specsList.splice(index, 1);
			},
			addSpecs() {
				let obj = {
					'name': '',
					'value': '',
					'sort': 0
				}
				this.specsList.push(obj)
			},
			specsInfo(e) {
				this.specsData.forEach(item => {
					if (item.id == e) {
						this.specsList = item.specs
					}
				})
			},
			getProductAllSpecs() {
				productAllSpecs().then(res => {
					this.specsData = res.data
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			getProductAllEnsure() {
				productAllEnsure().then(res => {
					this.ensureData = res.data
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			//添加倒入卡密的值
			changeVirtual(e) {
				this.virtualList = e;
			},
			//添加卡密
			addVirtual(index, name) {
				this.tabIndex = index;
				this.tabName = name;
				this.virtualListClear();
				this.$refs.addCarMy.fixedCar = {
					disk_info: '',
					stock: 0
				}
				this.$refs.addCarMy.cartMyType = 1;
				this.carMyShow = true;
			},
			//确认提交卡密
			fixdBtn(e) {
				if (e.cartMyType == 1) {
					this.$set(this[this.tabName][this.tabIndex], "disk_info", e.disk_info);
					this.$set(this[this.tabName][this.tabIndex], "stock", Number(e.stock));
					this[this.tabName][this.tabIndex].virtual_list = [];
				} else {
					this.$set(this[this.tabName][this.tabIndex], "virtual_list", e.virtualList);
					this.$set(this[this.tabName][this.tabIndex], "stock", e.virtualList.length);
					this[this.tabName][this.tabIndex].disk_info = '';
				}
				this.carMyShow = false;
			},
			closeCarMy() {
				this.carMyShow = false;
			},
			//清空卡密
			virtualListClear() {
				this.virtualList = [{
					key: "",
					value: "",
				}, ];
			},
			seeVirtual(data, name, index) {
				this.tabName = name;
				this.tabIndex = index;
				this.virtualListClear();
				this.$refs.addCarMy.fixedCar = {
					disk_info: '',
					stock: 0
				}
				if (data.virtual_list && data.virtual_list.length) {
					this.$refs.addCarMy.cartMyType = 2;
					this.virtualList = data.virtual_list;
				} else if (data.disk_info) {
					this.$refs.addCarMy.cartMyType = 1;
					this.$refs.addCarMy.fixedCar.disk_info = data.disk_info;
					this.$refs.addCarMy.fixedCar.stock = data.stock;
				}
				this.carMyShow = true;
			},
			//动态添加组件
			addAssembly() {
				this.formValidate.custom_form.push({
					title: "",
					label: "text",
					value: "",
					status: 0,
				});
			},
			customMessBtn(e) {
				if (!e) {
					this.formValidate.system_form_id = 0;
				}
			},
			// addcustom() {
			//   if (this.formValidate.custom_form.length > 9) {
			//     this.$Message.warning("最多添加10条");
			//   } else {
			//     this.addAssembly();
			//   }
			// },
			delcustom(index) {
				this.formValidate.custom_form.splice(index, 1);
			},
			// 预售具体日期
			onchangeTime(e) {
				this.formValidate.presale_time = e;
			},
			//定时上架
			onchangeShow(e) {
				this.formValidate.auto_on_time = e
			},
			//定时下架
			onchangeOff(e) {
				this.formValidate.auto_off_time = e
			},
			// 获取供应商内容
			getSupplierList() {
				getSupplierList().then(async (res) => {
					this.supplierList = res.data

				}).catch((res) => {
					this.$Message.error(res.msg)
				})
			},
			//打开属性
			batchAttr() {
				this.attrShow = true;
				// if(!this.activeAtter.length){
				//  let data = this.attrs;
				//  data.map(el=>{
				//  			el.details = [];
				//  	el.detail.map(label=>{
				//  		el.details.push({
				//  			name:label,
				//  			select:false
				//  		})
				//  	})
				//  })
				//  this.attrsList = data;
				// }
			},
			//获取属性
			getAttr() {
				this.oneFormBatch[0].attr = '全部';
				let data = this.attrs;
				data.map(el => {
					el.details = [];
					el.detail.map(label => {
						el.details.push({
							name: label,
							select: false
						})
					})
				})
				this.attrsList = data;
			},
			//选中属性
			activeAttr(e) {
				this.attrsList = e;
			},
			//关闭属性弹窗
			labelAttr() {
				this.attrShow = false;
			},
			//多属性为空
			manyEmpty(j) {
				j.pic = '';
				j.price = 0;
				j.settle_price = 0;
				j.cost = 0;
				j.ot_price = 0;
				j.stock = 0;
				j.bar_code = '';
				j.code = '';
				j.weight = 0;
				j.volume = 0;
				j.virtual_list = []
			},


			doCombination(arr) {
				var count = arr.length - 1; //数组长度(从0开始)
				var tmp = [];
				var totalArr = []; // 总数组

				return doCombinationCallback(arr, 0); //从第一个开始
				//js 没有静态数据，为了避免和外部数据混淆，需要使用闭包的形式
				function doCombinationCallback(arr, curr_index) {
					for (let val of arr[curr_index]) {
						tmp[curr_index] = val; //以curr_index为索引，加入数组
						//当前循环下标小于数组总长度，则需要继续调用方法
						if (curr_index < count) {
							doCombinationCallback(arr, curr_index + 1); //继续调用
						} else {
							totalArr.push(tmp.join(',')); //(直接给push进去，push进去的不是值，而是值的地址)
						}

						//js  对象都是 地址引用(引用关系)，每次都需要重新初始化，否则 totalArr的数据都会是最后一次的 tmp 数据；
						let oldTmp = tmp;
						tmp = [];
						for (let index of oldTmp) {
							tmp.push(index);
						}
					}
					return totalArr;
				}
			},

			//提交属性值；
			subAttrs(e) {
				let selectData = [];
				this.attrsList.forEach((el, index) => {
					let obj = [];
					el.details.forEach((label) => {
						if (label.select) {
							obj.push(label.name);
						}
					})
					if (obj.length) {
						selectData.push(obj)
					}
				})
				let newData = [];
				if (selectData.length) {
					newData = this.doCombination(selectData);
				}
				this.attrShow = false;
				this.activeAtter = selectData;
				this.oneFormBatch[0].attr = newData.length ? newData.join(';') : '全部';
				this.manyFormValidate.forEach(j => {
					j.select = false;
					if (newData.length) {
						newData.forEach(item => {
							if (j.values.split('').length == item.split('').length) {
								if (j.values == item) {
									j.select = true;
								}
							} else {
								if (j.values.indexOf(item) != -1) {
									j.select = true;
								}
							}
						})
					} else {
						j.select = true;
					}
				})
				this.$set(this, 'manyFormValidate', this.manyFormValidate)
			},
			goodsOn(e) {
				if (e == 0 || e == 1) {
					this.formValidate.auto_on_time = '';
				}
			},
			goodsOff(e) {
				if (!e) {
					this.formValidate.auto_off_time = '';
				}
			},
			addBrand() {
				this.$refs.menusFrom.modals = true
				this.$refs.menusFrom.titleFrom = "添加品牌分类"
				this.formBrand = {
					sort: 0,
					is_show: 1
				}
				this.formBrand.fid = [0];
				this.$refs.menusFrom.type = 1
			},
			getAllUnit() {
				productAllUnit().then(res => {
					this.unitNameList = res.data;
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			addClass() {
				this.$modalForm(productCreateApi()).then(() => this.goodsCategory());
			},
			addUnit() {
				this.$modalForm(productUnitCreate()).then(() => this.getAllUnit());
			},
			addStoreLabel() {
				this.$modalForm(productLabelAdd()).then(() => {});
			},
			productTypeTap(num, item) {
				if (num == 1) {
					if (this.$route.params.id) return this.$Message.error('商品类型不能切换！');
					this.formValidate.product_type = item.id;
				}
				if (this.formValidate.product_type) {
					this.headTab = [{
							title: "基础信息",
							name: "1"
						},
						{
							title: "规格库存",
							name: "2"
						},
						{
							title: "商品详情",
							name: "3"
						},
						{
							title: "营销设置",
							name: "5"
						},
						{
							title: "其他设置",
							name: "6"
						},
					]
					this.formValidate.postage = 0;
					this.formValidate.supplier_id = 0;
				} else {
					this.headTab = [{
							title: "基础信息",
							name: "1"
						},
						{
							title: "规格库存",
							name: "2"
						},
						{
							title: "商品详情",
							name: "3"
						},
						{
							title: "物流设置",
							name: "4"
						},
						{
							title: "营销设置",
							name: "5"
						},
						{
							title: "其他设置",
							name: "6"
						},
					]
				}
			},
			closeLabel(label) {
				let index = this.dataLabel.indexOf(this.dataLabel.filter(d => d.id == label.id)[0]);
				this.dataLabel.splice(index, 1);
			},
			activeData(dataLabel) {
				this.labelShow = false;
				this.dataLabel = dataLabel;
			},
			openLabel(row) {
				this.labelShow = true;
				this.$refs.userLabel.userLabel(JSON.parse(JSON.stringify(this.dataLabel)));
			},
			// 标签弹窗关闭
			labelClose() {
				this.labelShow = false;
			},
			closeStoreLabel(label) {
				let index = this.storeDataLabel.indexOf(this.storeDataLabel.filter(d => d.id == label.id)[0]);
				this.storeDataLabel.splice(index, 1);
			},
			activeStoreData(storeDataLabel) {
				this.storeLabelShow = false;
				this.storeDataLabel = storeDataLabel;
			},
			openStoreLabel(row) {
				this.storeLabelShow = true;
				this.$refs.storeLabel.storeLabel(JSON.parse(JSON.stringify(this.storeDataLabel)));
			},
			// 标签弹窗关闭
			storeLabelClose() {
				this.storeLabelShow = false;
			},
			// 品牌列表
			getBrandList() {
				brandList().then(res => {
					//initBran()函数作用iview中规定value必须是字符串，后台返回成了数字，用于处理这个，给了个递归；
					this.initBran(res.data);
					this.brandData = res.data
				}).catch(err => {
					this.$Message.error(err.msg);
				})
			},
			initBran(data) {
				data.map(item => {
					item.value = item.value.toString();
					if (item.children && item.children.length) {
						this.initBran(item.children);
					}
				})
			},
			getProductId(e) {
				this.goodsModals = false;
				let nArr = this.goodsData.concat(e).filter((element, index, self) => {
					return self.findIndex(x => x.product_id == element.product_id) == index
				})
				this.goodsData = nArr.slice(0, 12);
			},
			goodCancel() {
				this.goodsModals = false;
			},
			goodsTap() {
				this.goodsModals = true;
				this.$refs.goodslist.handleSelectAll();
			},
			bindDelete(index) {
				this.goodsData.splice(index, 1)
			},
			cancel() {
				this.$router.push({
					path: '/admin/product/product_list'
				});
			},

			videoSaveToUrl(file) {
				let imgTypeArr = ["video/mp4"];
				let imgType = imgTypeArr.indexOf(file.type) !== -1
				if (!imgType) {
					return this.$Message.warning({
						content: '文件  ' + file.name + '  格式不正确, 请选择格式正确的视频',
						duration: 5
					});
				}
				uploadByPieces({
					randoms: "", // 随机数，这里作为给后端处理分片的标识 根据项目看情况 是否要加
					file: file, // 视频实体
					pieceSize: 3, // 分片大小
					success: (data) => {
						this.formValidate.video_link = data.file_path;
						this.progress = 100;
					},
					error: (e) => {
						this.$Message.error(e.msg);
					},
					uploading: (chunk, allChunk) => {
						this.videoIng = true;
						let st = Math.floor((chunk / allChunk) * 100);
						this.progress = st;
					},
				});
				return false;
			},

			// 上传头部token
			getToken() {
				this.header["Authori-zation"] = "Bearer " + util.cookies.get("token");
			},
			// beforeUpload() {
			//   this.uploadData = {};
			//   let promise = new Promise((resolve) => {
			//     this.$nextTick(function () {
			//       resolve(true);
			//     });
			//   });
			//   return promise;
			// },
			// 上传成功
			handleSuccess(res, file, fileList) {
				if (res.status === 200) {
					this.formValidate.video_link = res.data.src;
					this.$Message.success(res.msg);
				} else {
					this.$Message.error(res.msg);
				}
			},
			//获取视频上传类型
			uploadType() {
				uploadType().then((res) => {
					this.upload_type = res.data.upload_type;
				});
			},
			getEditorContent(data) {
				this.content = data;
			},
			infoData(data) {
				let cate_id = data.cate_id.map(Number);
				this.attrs = data.items || [];
				let ids = [];
				data.coupons.map((item) => {
					ids.push(item.id);
				});
				this.goodsData = data.recommend_list;
				if (data.auto_off_time) {
					this.off_show = 1;
				} else {
					this.off_show = 0;
				}
				let brandIds = [];
				data.brand_id.forEach(item => {
					brandIds.push(item.toString())
				})
				this.formValidate = data;
				this.formTypeList = data.custom_form_info;
				this.formValidate.brand_id = brandIds;
				this.formValidate.supplier_id = data.relation_id;
				this.formValidate.is_limit = this.formValidate.is_limit ? 1 : 0;
				this.formValidate.limit_type = parseInt(data.limit_type);
				this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
				this.contents = data.description;
				this.couponName = data.coupons;
				this.formValidate.coupon_ids = ids;
				this.updateIds = ids;
				this.updateName = data.coupons;
				this.formValidate.cate_id = cate_id;
				this.dataLabel = data.label_id;
				this.storeDataLabel = data.store_label_id;
				this.specsList = data.specs;
				if (data.attr) {
					this.oneFormValidate = [data.attr];
				}
				this.formValidate.header = [];
				this.generate(0);
				console.log('attrs:')
				console.log(data.attrs)
				//this.manyFormValidate = data.attrs;
				this.addmanyData(data.attrs);
				this.productTypeTap(2);
				this.formValidate.system_form_id = data.system_form_id || 0;
				if (this.formValidate.system_form_id) {
					this.customBtn = true;
				}

				this.spec_type = data.spec_type;
				if (data.spec_type === 0) {
					this.manyFormValidate = [];
					this.extraPriceData = data.attr.level_price_info
				} else {
					this.createBnt = true;
					this.oneFormValidate = [{
						pic: "",
						price: 0,
						settle_price: 0,
						cost: 0,
						ot_price: 0,
						stock: 0,
						bar_code: "",
						code: "",
						weight: 0,
						volume: 0,
						brokerage: 0,
						brokerage_two: 0,
						vip_price: 0,
						virtual_list: [],
						write_times: 0, //核销次数
						write_valid: 1, //核销时效
						days: 1
					}, ];
				}
			},
			//关闭淘宝弹窗并生成数据；
			onClose(data) {
				this.modals = false;
				this.infoData(data);
			},

			checkMove(evt) {
				this.moveIndex = evt.draggedContext.index;
			},
			end() {
				this.moveIndex = "";
			},
			checkAllGroupChange(data) {
				this.checkAllGroup(data);
			},
			checkAllGroup(data) {
				if (this.formValidate.spec_type === 0) {
					if (data.indexOf(0) > -1) {
						this.columnsInstall = this.columns2.slice(1, 5).concat(this.member);
					} else if (data.indexOf(1) > -1) {
						this.columnsInstall = this.columns2.slice(1, 5).concat(this.rakeBack);
					} else {
						this.columnsInstall = this.columns2.slice(1, 5);
					}
					if (data.length === 2) {
						this.columnsInstall = this.columns2
							.slice(1, 5)
							.concat(this.rakeBack)
							.concat(this.member);
					}
				} else {
					if (data.indexOf(0) > -1) {
						this.columnsInstal2 = this.columnsInstalM
							.slice(0, 4)
							.concat(this.member);
					} else if (data.indexOf(1) > -1) {
						this.columnsInstal2 = this.columnsInstalM
							.slice(0, 4)
							.concat(this.rakeBack);
					} else {
						this.columnsInstal2 = this.columnsInstalM.slice(0, 4);
					}
					if (data.length === 2) {
						this.columnsInstal2 = this.columnsInstalM
							.slice(0, 4)
							.concat(this.rakeBack)
							.concat(this.member);
					}
				}
			},
			// 添加优惠券
			addCoupon() {
				this.$refs.couponTemplates.isTemplate = true;
				this.$refs.couponTemplates.tableList();
			},
			//对象数组去重；
			unique(arr) {
				const res = new Map();
				return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
			},
			nameId(id, names) {
				this.formValidate.coupon_ids = id;
				this.couponName = this.unique(names);
			},
			handleClose(name) {
				let index = this.couponName.indexOf(name);
				this.couponName.splice(index, 1);
				let couponIds = this.formValidate.coupon_ids;
				couponIds.splice(index, 1);
				this.updateIds = couponIds;
				this.updateName = this.couponName;
			},
			// 运费模板
			getList() {
				this.productGetTemplate();
			},
			// 添加运费模板
			addTemp() {
				this.$refs.templates.isTemplate = true;
			},
			//查看、编辑运费模板
			editTemp() {
				this.$refs.templates.isTemplate = true;
				this.$refs.templates.editFrom(this.formValidate.temp_id);
			},
			// 删除视频；
			delVideo() {
				let that = this;
				that.$set(that.formValidate, "video_link", "");
				that.$set(that, "progress", 0);
				that.videoIng = false;
				that.upload.videoIng = false;
				that.$refs.refid.value = '';
			},
			zh_uploadFile() {
				if (this.seletVideo == 1) {
					if (this.videoLink && this.$getFileType(this.videoLink) == 'video') {
						this.formValidate.video_link = this.videoLink;
					} else {
						return this.$Message.error("请输入正确的视频链接")
					}
				} else {
					this.$refs.refid.click();
				}
			},
			zh_uploadFile_change(evfile) {
				let that = this;
				let suffix = evfile.target.files[0].name.substr(
					evfile.target.files[0].name.indexOf(".")
				);
				if (suffix.indexOf(".mp4") === -1) {
					return that.$Message.error("只能上传MP4文件");
				}
				productGetTempKeysApi()
					.then((res) => {
						that.$videoCloud
							.videoUpload({
								type: res.data.type,
								evfile: evfile,
								res: res,
								uploading(status, progress) {
									that.upload.videoIng = status;
									if (res.status == 200) {
										that.progress = 100;
									}
								},
							})
							.then((res) => {
								that.formValidate.video_link = res.url;
								that.$Message.success("视频上传成功");
								that.upload.videoIng = false;
							})
							.catch((res) => {
								that.$Message.error(res);
							});
					})
					.catch((res) => {
						that.$Message.error(res.msg);
					});
			},
			// 上一页；
			upTab() {
				if (this.currentTab == 5 && this.formValidate.product_type != 0) {
					this.currentTab = (Number(this.currentTab) - 2).toString();
				} else {
					this.currentTab = (Number(this.currentTab) - 1).toString();
				}
			},
			// 下一页；
			downTab(name) {
				this.$refs[name].validate((valid) => {
					if (valid) {
						if (this.formValidate.is_show == 2 && !this.formValidate.auto_on_time) {
							return this.$Message.warning("请填写定时上架时间");
						}
						if (this.off_show == 1 && !this.formValidate.auto_off_time) {
							return this.$Message.warning("请填写定时下架时间");
						}
						if (this.currentTab == 4 && !this.formValidate.delivery_type.length) {
							return this.$Message.warning("请选择配送方式");
						}
						if (this.currentTab == 3 && this.formValidate.product_type != 0) {
							this.currentTab = (Number(this.currentTab) + 2).toString();
						} else {
							this.currentTab = (Number(this.currentTab) + 1).toString();
						}
					} else {
						this.$Message.warning("请完善数据");
					}
				})
			},
			// 属性弹窗回调函数；
			userSearchs() {
				this.productGetRule();
			},
			// 添加规则；
			addRule() {
				this.$refs.addattr.modal = true;
			},
			// 批量设置分佣；
			brokerageSetUp() {
				let that = this;
				if (that.formValidate.is_sub.indexOf(1) > -1) {
					if (that.manyBrokerage <= 0 || that.manyBrokerageTwo <= 0) {
						return that.$Message.error("请填写返佣金额后进行批量添加");
					}
				} else if (that.formValidate.is_sub.indexOf(0) > -1) {
					if (that.manyVipPrice <= 0) {
						return that.$Message.error("请填写会员价后进行批量添加");
					}
				}
				if (this.formValidate.is_sub.length === 2) {
					if (
						that.manyBrokerage <= 0 ||
						that.manyBrokerageTwo <= 0 ||
						that.manyVipPrice <= 0
					) {
						return that.$Message.error("请填写完金额后进行批量添加");
					}
				}
				for (let val of that.manyFormValidate) {
					this.$set(val, "brokerage", that.manyBrokerage);
					this.$set(val, "brokerage_two", that.manyBrokerageTwo);
					this.$set(val, "vip_price", that.manyVipPrice);
				}
				// let that = this;
				// if (that.manyBrokerage <= 0 || that.manyBrokerageTwo <= 0) {
				//     return that.$Message.error('请填写返佣金额在进行批量添加');
				// } else {
				//     for (let val of that.manyFormValidate) {
				//         this.$set(val, 'brokerage', that.manyBrokerage);
				//         this.$set(val, 'brokerage_two', that.manyBrokerageTwo);
				//     }
				// }
			},
			// 批量设置会员价
			vipPriceSetUp() {
				let that = this;
				if (that.manyVipPrice <= 0) {
					return that.$Message.error("请填写会员价在进行批量添加");
				} else {
					for (let val of that.manyFormValidate) {
						this.$set(val, "vip_price", that.manyVipPrice);
					}
				}
			},
			batchDel() {
				this.oneFormBatch = [{
					attr: "全部",
					pic: "",
					price: 0,
					settle_price: 0,
					cost: 0,
					ot_price: 0,
					stock: 0,
					bar_code: "",
					code: "",
					weight: 0,
					volume: 0,
					virtualList: [],
					disk_info: ''
				}, ];
				this.activeAtter = [];
				for (let val of this.manyFormValidate) {
					val.select = true;
				}
			},
			confirm() {
				let that = this;
				that.createBnt = true;
				if (that.formValidate.selectRule.trim().length <= 0) {
					return that.$Message.error("请选择属性");
				}
				that.ruleList.forEach(function(item, index) {
					if (item.rule_name === that.formValidate.selectRule) {
						that.attrs = item.rule_value;
					}
				});
			},
			// 获取商品属性模板；
			productGetRule() {
				productGetRuleApi().then((res) => {
					this.ruleList = res.data;
				});
			},
			// 获取运费模板；
			productGetTemplate() {
				let id = this.$route.params.id;
				productGetTemplateApi({
					id: id
				}).then((res) => {
					this.templateList = res.data;
				});
			},
			// 删除表格中的属性
			delAttrTable(index) {
				let id = this.$route.params.id;
				if (id) {
					checkActivityApi(id)
						.then((res) => {
							this.manyFormValidate.splice(index, 1);
							this.$Message.success(res.msg);
						})
						.catch((res) => {
							this.$Message.error(res.msg);
						});
				} else {
					this.manyFormValidate.splice(index, 1);
				}
			},
			// 批量添加
			batchAdd() {
				for (let val of this.manyFormValidate) {
					//this.manyEmpty(val);
					if (val.select) {
						if (this.oneFormBatch[0].pic) {
							this.$set(val, "pic", this.oneFormBatch[0].pic);
						}
						if (this.oneFormBatch[0].price > 0) {
							this.$set(val, "price", this.oneFormBatch[0].price);
						}
						if (this.oneFormBatch[0].settle_price > 0 && this.merchantType == 2) {
							this.$set(val, "settle_price", this.oneFormBatch[0].settle_price);
						}
						if (this.oneFormBatch[0].cost > 0) {
							this.$set(val, "cost", this.oneFormBatch[0].cost);
						}
						if (this.oneFormBatch[0].ot_price > 0) {
							this.$set(val, "ot_price", this.oneFormBatch[0].ot_price);
						}
						if (this.oneFormBatch[0].stock > 0) {
							this.$set(val, "stock", this.oneFormBatch[0].stock);
						}
						if (this.oneFormBatch[0].bar_code !== "") {
							this.$set(val, "bar_code", this.oneFormBatch[0].bar_code);
						}
						if (this.oneFormBatch[0].code !== "") {
							this.$set(val, "code", this.oneFormBatch[0].code);
						}
						if (this.oneFormBatch[0].weight > 0) {
							this.$set(val, "weight", this.oneFormBatch[0].weight);
						}
						if (this.oneFormBatch[0].volume > 0) {
							this.$set(val, "volume", this.oneFormBatch[0].volume);
						}
						if (this.formValidate.product_type == 1) {
							if (this.oneFormBatch[0].virtual_list && this.oneFormBatch[0].virtual_list.length) {
								this.$set(val, "virtual_list", this.oneFormBatch[0].virtual_list);
							} else if (this.oneFormBatch[0].disk_info) {
								this.$refs.addCarMy.cartMyType = 1;
								this.$set(val, "disk_info", this.oneFormBatch[0].disk_info);
							}
						}
					}
				}
			},
			// 添加按钮
			addBtn() {
				let id = this.$route.params.id;
				checkActivityApi(id)
					.then((res) => {
						this.clearAttr();
						this.createBnt = false;
						this.showIput = true;
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
			addmanyData(data, type) {
				if (type == 1) {
					this.oneFormBatch[0].pic = this.formValidate.image
					data.forEach(item => {
						item.select = true,
							item.pic = this.formValidate.image
					})
				} else {
					console.log('生成manyFormValidate:')
					console.log(data)
					data.forEach(item => {
						item.select = true
					})
				}
				console.log(data)
				this.manyFormValidate = data;
			},
			// 立即生成
			generate(type) {
				generateAttrApi({
						attrs: this.attrs,
						product_type: this.formValidate.product_type
					}, this.formValidate.id, type)
					.then((res) => {
						let info = res.data.info,
							header1 = JSON.parse(JSON.stringify(info.header));
						if ((this.$route.params.id !== "0" && this.type != -1) || type == 1) {
							this.addmanyData(info.value, type);
						}
						this.formValidate.header = header1;
						this.attrData = res.data.info.attr;
						let header = info.header;
						header.pop();
						this.columnsInstalM = info.header;
						this.checkAllGroup(this.formValidate.is_sub);
						if (!this.$route.params.id && this.formValidate.spec_type === 1 && this.type != -1) {
							this.manyFormValidate.map((item) => {
								item.pic = this.formValidate.slider_image[0];
								item.level_price_info = this.extraPriceData
							});
							this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
						} else if (this.$route.params.id) {
							this.manyFormValidate.map((item) => {
								if (!item.pic) {
									item.pic = this.formValidate.slider_image[0];
								}
							});
							this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
						}
						this.getAttr();
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
			// 取消
			offAttrName() {
				this.showIput = false;
				this.createBnt = true;
			},
			clearAttr() {
				this.formDynamic.attrsName = "";
				this.formDynamic.attrsVal = "";
			},
			// 删除规格
			handleRemoveRole(index) {
				this.attrs.splice(index, 1);
				this.manyFormValidate.splice(index, 1);
			},
			// 删除属性
			handleRemove2(item, index) {
				item.splice(index, 1);
			},
			// 添加规则名称
			createAttrName() {
				if (this.formDynamic.attrsName && this.formDynamic.attrsVal) {
					let data = {
						value: this.formDynamic.attrsName,
						detail: [this.formDynamic.attrsVal],
					};
					this.attrs.push(data);
					var hash = {};
					this.attrs = this.attrs.reduce(function(item, next) {
						/* eslint-disable */
						hash[next.value] ? "" : (hash[next.value] = true && item.push(next));
						return item;
					}, []);
					this.clearAttr();
					this.showIput = false;
					this.createBnt = true;
				} else {
					this.$Message.warning("请添加完整的规格！");
				}
			},
			// 添加属性
			createAttr(num, idx) {
				if (num) {
					this.attrs[idx].detail.push(num);
					var hash = {};
					this.attrs[idx].detail = this.attrs[idx].detail.reduce(function(
							item,
							next
						) {
							/* eslint-disable */
							hash[next] ? "" : (hash[next] = true && item.push(next));
							return item;
						},
						[]);
				} else {
					this.$Message.warning("请添加属性");
				}
			},
			// 商品分类；
			goodsCategory() {
				cascaderListApi(1)
					.then((res) => {
						this.treeSelect = res.data;
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
			//视视上传类型
			changeVideo(e) {
				this.formValidate.video_link = "";
				this.videoLink = "";
			},
			// 改变规格
			changeSpec() {
				this.formValidate.is_sub = [];
				let id = this.$route.params.id;
				if (id) {
					checkActivityApi(id)
						.then((res) => {})
						.catch((res) => {
							this.formValidate.spec_type = this.spec_type;
							this.$Message.error(res.msg);
						});
				}
			},
			// 详情
			getInfo() {
				let that = this;
				that.spinShow = true;
				productInfoApi(that.$route.params.id || this.$route.query.copy)
					.then(async (res) => {
						let data = res.data.productInfo;
						this.merchantType = parseInt(data.type);
						if (this.merchantType == 2) {
							let obj = {
								title: "结算价",
								slot: "settle_price",
								align: "center",
								minWidth: 95,
							}
							this.columns2.splice(3, 0, obj)
						}
						this.infoData(data);
						// let cate_id = data.cate_id.map(Number);
						// let label_id = data.label_id.map(Number);
						// this.attrs = data.items || [];
						// let ids = [];
						// data.coupons.map((item) => {
						//   ids.push(item.id);
						// });
						// that.formValidate = data;
						// that.couponName = data.coupons;
						// that.formValidate.coupon_ids = ids;
						// that.updateIds = ids;
						// that.updateName = data.coupons;
						// that.formValidate.cate_id = cate_id;
						// that.formValidate.label_id = label_id;
						// that.oneFormValidate = [data.attr];
						// that.formValidate.header = [];
						// that.manyFormValidate = data.attrs;
						// that.generate(0);
						// that.spec_type = data.spec_type;
						// if (data.spec_type === 0) {
						//   that.manyFormValidate = [];
						// } else {
						//   that.createBnt = true;
						//   that.oneFormValidate = [
						//     {
						//       pic: data.image,
						//       price: 0,
						//       cost: 0,
						//       ot_price: 0,
						//       stock: 0,
						//       bar_code: "",
						//       weight: 0,
						//       volume: 0,
						//       brokerage: 0,
						//       brokerage_two: 0,
						//       vip_price: 0,
						//     },
						//   ];
						// }
						this.spinShow = false;
					})
					.catch((res) => {
						this.spinShow = false;
						this.$Message.error(res.msg);
					});
			},
			// tab切换
			onhangeTab(name) {
				this.currentTab = name;
			},
			handleRemove(i) {
				this.images.splice(i, 1);
				this.formValidate.slider_image.splice(i, 1);
				this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
			},
			// 关闭图片上传模态框
			changeCancel(msg) {
				this.modalPic = false;
			},
			// 点击商品图
			modalPicTap(tit, picTit, index) {
				this.modalPic = true;
				this.isChoice = tit === "dan" ? "单选" : "多选";
				this.picTit = picTit;
				this.tableIndex = index;
			},
			// 获取单张图片信息
			getPic(pc) {
				switch (this.picTit) {
					case "danFrom":
						this.formValidate.image = pc.att_dir;
						if (!this.$route.params.id) {
							if (this.formValidate.spec_type === 0) {
								this.oneFormValidate[0].pic = pc.att_dir;
							} else {
								this.manyFormValidate.map((item) => {
									item.pic = pc.att_dir;
								});
								this.oneFormBatch[0].pic = pc.att_dir;
							}
						}
						break;
					case "danTable":
						this.oneFormValidate[this.tableIndex].pic = pc.att_dir;
						break;
					case "duopi":
						this.oneFormBatch[this.tableIndex].pic = pc.att_dir;
						break;
					case "recommend_image":
						this.formValidate.recommend_image = pc.att_dir;
						break;
					case "video":
						this.formValidate.video_link = pc.att_dir;
						break;
					default:
						this.manyFormValidate[this.tableIndex].pic = pc.att_dir;
				}
				this.modalPic = false;
			},
			// 获取多张图信息
			getPicD(pc) {
				this.images = pc;
				this.images.map((item) => {
					this.formValidate.slider_image.push(item.att_dir);
					this.formValidate.slider_image = this.formValidate.slider_image.splice(
						0,
						10
					);
				});
				this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
				this.modalPic = false;
			},
			// 提交
			handleSubmit(name) {
				this.$refs[name].validate((valid) => {
					if (valid) {
						if (!this.formValidate.store_name.trim()) {
							return this.$Message.warning("基础信息-商品名称不能为空");
						}
						if (this.formValidate.is_show == 2 && !this.formValidate.auto_on_time) {
							return this.$Message.warning("基础信息-定时上架时间不能为空");
						}
						if (this.off_show == 1 && !this.formValidate.auto_off_time) {
							return this.$Message.warning("基础信息-定时下架时间不能为空");
						}
						if (this.formValidate.product_type == 4 && !this.oneFormValidate[0].write_times) {
							return this.$Message.warning("规格库存-核销次数必须大于0");
						}
						if (this.formValidate.product_type == 4 && this.oneFormValidate[0].write_valid == 2 && !
							this.oneFormValidate[0].days) {
							return this.$Message.warning("规格库存-有效天数必须大于0");
						}
						if (this.formValidate.product_type == 4 && this.oneFormValidate[0].write_valid == 3 && !
							this.oneFormValidate[0].section_time.length) {
							return this.$Message.warning("规格库存-请输入固定有效期");
						}
						if (this.formValidate.freight == 2 && this.formValidate.product_type == 0 && this
							.formValidate.postage <= 0) {
							return this.$Message.warning("物流设置-固定邮费不能为0");
						}
						if (this.formValidate.freight == 3 && this.formValidate.product_type == 0 && !this
							.formValidate.temp_id) {
							return this.$Message.warning("物流设置-运费模板不能为空");
						}
						if (this.formValidate.product_type == 0 && this.formValidate.is_presale_product && !this
							.formValidate.presale_time[0]) {
							return this.$Message.warning("营销设置-预售时间不能为空");
						}
						// for (let i = 0; i < this.formValidate.custom_form.length; i++) {
						//   const element = this.formValidate.custom_form[i];
						//   if (!element.title) {
						//     return this.$Message.warning("其他设置-留言标题不能为空");
						//   }
						// }
						if (this.customBtn && this.formValidate.system_form_id == 0) {
							return this.$Message.warning('其他设置-请选择自定义表单模板');
						}
						this.formValidate.type = this.type;
						if (this.formValidate.spec_type === 0) {
							this.oneFormValidate[0].level_price_info = this.extraPriceData;
							this.formValidate.attrs = this.oneFormValidate;
							this.formValidate.header = [];
							this.formValidate.items = [];
						} else {
							this.formValidate.items = this.attrs;
							this.manyFormValidate.forEach(item => {
							});
							this.formValidate.attrs = this.manyFormValidate;
						}
						if (
							this.formValidate.spec_type === 1 &&
							this.manyFormValidate.length === 0
						) {
							return this.$Message.warning("规格库存-请点击生成多规格");
							// return this.$Message.warning('请点击生成规格！');
						}
						let item = this.formValidate.attrs;
						if (this.formValidate.is_sub.indexOf(1) != -1) {
							for (let i = 0; i < item.length; i++) {
								if (
									item[i].brokerage === null ||
									item[i].brokerage_two === null
								) {
									return this.$Message.warning("营销设置- 一二级返佣不能为空");
								}
							}
						}
						if (this.formValidate.is_sub.indexOf(0) != -1) {
							for (let i = 0; i < item.length; i++) {
								if (item[i].vip_price === null) {
									return this.$Message.warning("营销设置-会员价不能为空");
								}
								if (item[i].vip_price === 0) {
									return this.$Message.warning("营销设置-会员价不能为0");
								}
							}
						}
						if (this.formValidate.is_sub.length === 2) {
							for (let i = 0; i < item.length; i++) {
								if (
									item[i].brokerage === null ||
									item[i].brokerage_two === null ||
									item[i].vip_price === null
								) {
									return this.$Message.error(
										"营销设置- 一二级返佣和会员价不能为空"
									);
								}
							}
						}
						for (let i = 0; i < this.specsList.length; i++) {
							let data = this.specsList[i];
							if (!data.name.trim()) {
								return this.$Message.error('请输入参数名称');
							}
							if (!data.value.trim()) {
								return this.$Message.error('请输入参数值');
							}
						}
						if (!this.formValidate.product_type) {
							this.formValidate.is_support_refund = 1;
						}
						this.openSubimit = false;
						this.formValidate.description = this.formatRichText(this.content);
						let goodsId = [];
						this.goodsData.forEach(item => {
							goodsId.push(item.product_id)
						})
						this.formValidate.recommend_list = goodsId;
						// 用户标签
						let activeIds = [];
						this.dataLabel.forEach((item) => {
							activeIds.push(item.id)
						});
						this.formValidate.label_id = activeIds
						// 商品标签
						let storeActiveIds = [];
						this.storeDataLabel.forEach((item) => {
							storeActiveIds.push(item.id)
						});
						this.formValidate.store_label_id = storeActiveIds
						// 商品参数
						this.formValidate.specs = this.specsList;
						if (this.$route.query.copy) {
							this.formValidate.id = 0;
							this.formValidate.soure_link = '';
						}
						if (this.formValidate.product_type == 4) {
							this.formValidate.delivery_type = 2
						}
						// console.log(this.formValidate);return;
						productAddApi(this.formValidate)
							.then(async (res) => {
								this.openSubimit = true;
								this.$Message.success(res.msg);
								if (this.$route.params.id === "0") {
									cacheDelete().catch((err) => {
										this.$Message.error(err.msg);
									});
								}
								setTimeout(() => {
									this.$router.push({
										path: "/admin/product/product_list"
									});
								}, 500);
							})
							.catch((res) => {
								this.openSubimit = false;
								this.$Message.error(res.msg);
							});
					} else {
						if (!this.formValidate.store_name) {
							return this.$Message.warning("基础信息-商品名称不能为空");
						} else if (!this.formValidate.cate_id.length) {
							return this.$Message.warning("基础信息-商品分类不能为空");
						} else if (!this.formValidate.unit_name) {
							return this.$Message.warning("基础信息-商品单位不能为空");
						} else if (!this.formValidate.slider_image.length) {
							return this.$Message.warning("基础信息-商品轮播图不能为空");
						}
						//    if(!this.formValidate.store_name || !this.formValidate.cate_id || !this.formValidate.keyword
						//    || !this.formValidate.unit_name || !this.formValidate.store_info
						//        || !this.formValidate.image || !this.formValidate.slider_image){
						//        this.$Message.warning("请填写完整商品信息！");
						//    }
					}
				});
			},
			changeTemplate(msg) {
				this.template = msg;
			},
			// 表单验证
			validate(prop, status, error) {
				if (status === false) {
					this.$Message.warning(error);
				}
			},
			// 移动
			handleDragStart(e, item) {
				this.dragging = item;
			},
			handleDragEnd(e, item) {
				this.dragging = null;
			},
			handleDragOver(e) {
				e.dataTransfer.dropEffect = "move";
			},
			handleDragEnter(e, item) {
				e.dataTransfer.effectAllowed = "move";
				if (item === this.dragging) {
					return;
				}
				const newItems = [...this.formValidate.slider_image];
				const src = newItems.indexOf(this.dragging);
				const dst = newItems.indexOf(item);
				newItems.splice(dst, 0, ...newItems.splice(src, 1));
				this.formValidate.slider_image = newItems;
			},
			// 添加自定义弹窗
			addCustomDialog(editorId) {
				window.UE.registerUI(
					"test-dialog",
					function(editor, uiName) {
						// 创建 dialog
						let dialog = new window.UE.ui.Dialog({
							iframeUrl: "/admin/widget.images/index.html?fodder=dialog",
							editor: editor,
							name: uiName,
							title: "上传图片",
							cssRules: "width:1200px;height:500px;padding:20px;",
						});
						this.dialog = dialog;
						let btn = new window.UE.ui.Button({
							name: "dialog-button",
							title: "上传图片",
							cssRules: `background-image: url(https://cdn.oss.9gt.net/prov1.1/1/icons.png);background-position: -726px -77px;`,
							onclick: function() {
								// 渲染dialog
								dialog.render();
								dialog.open();
							},
						});
						return btn;
					},
					37
				);
				window.UE.registerUI(
					"video-dialog",
					function(editor, uiName) {
						let dialog = new window.UE.ui.Dialog({
							iframeUrl: "/admin/widget.video/index.html?fodder=video",
							editor: editor,
							name: uiName,
							title: "上传视频",
							cssRules: "width:1000px;height:500px;padding:20px;",
						});
						this.dialog = dialog;
						let btn = new window.UE.ui.Button({
							name: "video-button",
							title: "上传视频",
							cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -320px -20px;`,
							onclick: function() {
								// 渲染dialog
								dialog.render();
								dialog.open();
							},
						});
						return btn;
					},
					38
				);
			},
			formatRichText(html) {
				let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
					match = match
						.replace(/style="[^"]+"/gi, "")
						.replace(/style='[^']+'/gi, "");
					match = match
						.replace(/width="[^"]+"/gi, "")
						.replace(/width='[^']+'/gi, "");
					match = match
						.replace(/height="[^"]+"/gi, "")
						.replace(/height='[^']+'/gi, "");
					return match;
				});
				newContent = newContent.replace(
					/style="[^"]+"/gi,
					function(match, capture) {
						match = match
							.replace(/width:[^;]+;/gi, "max-width:100%;")
							.replace(/width:[^;]+;/gi, "max-width:100%;");
						return match;
					}
				);
				// newContent = newContent.replace(/<br[^>]*\/>/gi, "");
				newContent = newContent.replace(
					/\<img/gi,
					'<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"'
				);
				return newContent;
			},
		},
	};
</script>
<style scoped lang="stylus">
	.video-style {
		width: 100%;
		height: 100% !important;
		border-radius: 10px;
	}

	.select-add {
		width: 200px;
		margin-left: 6px;
		margin-right: 10px
	}

	.input-display {
		display: none
	}

	.width-add {
		width: 200px;
	}

	.custom-input {
		width: 100px;
		margin-right: 10px
	}

	.asterisk {
		position relative;

		.asteriskInfo {
			position absolute;
			color #ed4014;
			left 73px;
			top 8px;

			&.on {
				left: 62px;
			}

			&.on2 {
				left: 50px;
			}
		}
	}

	.specsList {
		/deep/.ivu-table-header table {
			border: 0 !important
		}

		/deep/.ivu-table-header thead tr th {
			padding 0 !important background-color #EEEEEE !important;
		}

		/deep/.ivu-table-cell {
			padding 0 !important
		}

		/deep/.ivu-table-border th,
		/deep/.ivu-table-border td {
			border-right unset;
		}

		/deep/.ivu-table td {
			height 59px;
		}
	}

	.form-submit {
		/deep/.ivu-card {
			border-radius: 0;
		}

		margin-bottom: 79px;

		.fixed-card {
			position: fixed;
			right: 0;
			bottom: 0;
			left: 200px;
			z-index: 45;
			box-shadow: 0 -1px 2px rgb(240, 240, 240);

			/deep/ .ivu-card-body {
				padding: 15px 16px 14px;
			}

			.ivu-form-item {
				margin-bottom: 0;
			}

			/deep/ .ivu-form-item-content {
				margin-right: 124px;
				text-align: center;
			}

			.ivu-btn {
				height: 36px;
				padding: 0 20px;
			}
		}
	}

	.seeCatMy {
		color: #2d8cf0;
		cursor: pointer;
	}

	.addCustom_content {
		margin-top: 20px;

		.custom_box {
			margin-bottom: 10px;
		}

		.addfont {
			display: inline-block;
			font-size: 13px;
			font-weight: 400;
			color: #1890FF;
			cursor: pointer;
		}
	}

	.addCustomBox {
		margin-top: 12px;
		font-size: 13px;
		font-weight: 400;
		color: #1890FF;

		.btn {
			cursor: pointer;
			width: max-content;
		}
	}

	.checkAlls /deep/.ivu-checkbox-inner {
		width 14px;
		height 14px;
	}

	.checkAlls /deep/.ivu-checkbox-wrapper {
		font-size 12px;
	}

	.lines {
		border-bottom: 1px dashed #eee;
		margin-bottom: 20px;
	}

	.iosfont {
		font-size 20px !important;
	}

	.selectOn {
		color #2d8cf0;
	}

	.ifam {
		width: 344px;
		height: 644px;
		background: url('../../../assets/images/phonebg.png') no-repeat center top;
		background-size: 344px 644px;
		padding: 40px 20px;
		padding-top: 50px;
		margin: 0 auto 0 20px;

		.content {
			height: 560px;
			overflow: hidden;
			scrollbar-width: none;
			/* firefox */
			-ms-overflow-style: none;
			/* IE 10+ */
			overflow-x: hidden;
			overflow-y: auto;
		}

		.content::-webkit-scrollbar {
			display: none;
			/* Chrome Safari */
		}
	}

	.offShow {
		position absolute
	}

	.goodsShow /deep/.ivu-radio-group-vertical .ivu-radio-wrapper {
		height 35px;
		line-height 35px;
	}

	.videbox {
		width: 60px;
		height: 60px;
		background: rgba(0, 0, 0, 0.02);
		border-radius: 4px;
		border: 1px dashed #DDDDDD;
		line-height: 50px;
		text-align: center;
		color: #898989;
		font-size: 30px;
		font-weight: 400;
		cursor: pointer;
	}

	.brandName {
		/deep/.ivu-cascader {
			display inline-block
		}
	}

	.formValidate {
		.addClass {
			color: #1890FF;
			margin-left 14px;
			padding 9px 0;
			cursor pointer;
		}
	}

	.productType {
		width: 120px;
		height: 60px;
		background: #FFFFFF;
		border-radius: 3px;
		border: 1px solid #E7E7E7;
		float: left;
		text-align: center;
		padding-top: 8px;
		position: relative;
		cursor: pointer;
		line-height: 23px;
		margin-right 12px;

		&.on {
			border-color #1890FF;
		}

		.name {
			font-size: 14px;
			font-weight: 600;
			color: rgba(0, 0, 0, 0.85);
		}

		.title {
			font-size: 12px;
			font-weight: 400;
			color: #999999;
		}

		.jiao {
			position: absolute;
			bottom: 0;
			right: 0;
			width: 0;
			height: 0;
			border-bottom: 26px solid #1890FF;
			border-left: 26px solid transparent;
		}

		.iconfont {
			position: absolute;
			bottom: -3px;
			right: 1px;
			color: #FFFFFF;
			font-size 12px;
		}

	}

	.labelInput {
		border: 1px solid #dcdee2;
		width 50%;
		padding 0 5px;
		border-radius 5px;
		min-height 30px;
		cursor pointer;

		.span {
			color: #c5c8ce;
		}

		.iconxiayi {
			font-size 12px
		}
	}

	.labelClass {
		/deep/.ivu-form-item-content {
			line-height unset;
		}
	}

	.ivu-checkbox-wrapper {
		margin-right 19px;
	}

	.list-group {
		margin-left: -8px;
	}

	.borderStyle {
		border: 1px solid #ccc;
		padding: 8px;
		border-radius: 4px;
	}

	.drag {
		cursor: move;
	}

	.move-icon {
		width: 30px;
		cursor: move;
		margin-right: 10px;
	}

	.move-icon .icondrag2 {
		font-size: 26px;
		color: #d8d8d8;
	}

	.maxW /deep/.ivu-select-dropdown {
		max-width: 600px;
	}

	#shopp-manager .ivu-table-wrapper {
		border-left: 1px solid #dcdee2;
		border-top: 1px solid #dcdee2;
	}

	.noLeft {
		>>>.ivu-form-item-content {
			margin-left: 0 !important;
		}
	}

	#shopp-manager .ivu-form-item .tips {
		display: inline-bolck;
		font-size: 12px;
		font-weight: 400;
		color: #999999;
		margin-top: 6px;
	}

	.iview-video-style {
		width: 40%;
		height: 180px;
		border-radius: 10px;
		background-color: #707070;
		margin-top: 10px;
		position: relative;
		overflow: hidden;
	}

	.iview-video-style .iconv {
		color: #fff;
		line-height: 180px;
		width: 50px;
		height: 50px;
		display: inherit;
		font-size: 26px;
		position: absolute;
		top: -74px;
		left: 50%;
		margin-left: -25px;
	}

	.iview-video-style .mark {
		position: absolute;
		width: 100%;
		height: 30px;
		top: 0;
		background-color: rgba(0, 0, 0, 0.5);
		text-align: center;
	}

	.uploadVideo {
		margin-left: 10px;
	}

	.submission {
		margin-left: 10px;
	}

	.form-submit .fixed-card .ivu-btn {
		height: 32px;
	}

	.color-list .tip {
		color: #c9c9c9;
	}

	.color-list .color-item {
		width 70px;
		height: 28px;
		line-height: 28px;
		color: #fff;
		margin-right: 10px;
		border-radius 2px;

		text-align center .num {
			color #1890FF;
			width 14px;
			height 14px;
			text-align center;
			line-height 14px;
			border-radius 50%;
			background-color #fff;
			margin-right 6px;
		}
	}

	.color-list .color-item.blue {
		background-color: #1E9FFF;
	}

	.color-list .color-item.yellow {
		background-color: rgb(254, 185, 0);
	}

	.color-list .color-item.green {
		background-color: #009688;
	}

	.color-list .color-item.red {
		background-color: #ed4014;
	}

	.color-list .color-item.colorBlue {
		background: linear-gradient(270deg, #5ECFFF 0%, #0084FF 100%);
	}

	.columnsBox {
		margin-right: 10px;
	}

	.priceBox {
		width: 100%;
	}

	.rulesBox {
		display: flex;
		flex-wrap: wrap;
	}

	.pictrueBox {
		display: inline-block;
	}

	.pictrueTab {
		width: 40px !important;
		height: 40px !important;
	}

	.pictrue {
		width: 60px;
		height: 60px;
		border: 1px dotted rgba(0, 0, 0, 0.1);
		margin-right: 15px;
		margin-bottom 10px;
		display: inline-block;
		position: relative;
		cursor: pointer;

		img {
			width: 100%;
			height: 100%;
		}

		.btndel {
			position: absolute;
			z-index: 1;
			width: 20px !important;
			height: 20px !important;
			left: 46px;
			top: -4px;
		}
	}

	.upLoad {
		width: 58px;
		height: 58px;
		line-height: 58px;
		border: 1px dotted rgba(0, 0, 0, 0.1);
		border-radius: 4px;
		background: rgba(0, 0, 0, 0.02);
		cursor: pointer;
	}

	.curs {
		cursor: pointer;
	}

	.inpWith {
		width: 60%;
	}

	.labeltop {
		>>>.ivu-form-item-label {
			float: none !important;
			display: inline-block !important;
			margin-left: 120px !important;
			width: auto !important;
		}

		.icondrop-down {
			font-size: 12px;
			margin-left: 5px;
		}
	}

	.video-icon {
		background-image: url('https://cdn.oss.9gt.net/prov1.1/1/icons.png'); // cdn.oss.9gt.net/prov1.1/1/icons.png);
		// background-color: #fff;
		background-position: -9999px;
		background-repeat: no-repeat;
	}

	.progress {
		margin-top: 10px;
	}

	.new_tab {
		>>>.ivu-tabs-nav .ivu-tabs-tab {
			padding: 4px 16px 20px !important;
			font-weight: 500;
		}
	}

	.input-number {
		position: relative;
		display: inline-block;

		.ivu-input-number {
			width: 100%;
		}

		/deep/.ivu-input-number-handler-wrap {
			right: 32px;
			border-right: 1px solid #dcdee2;
			border-radius: 0;
		}

		.input-suffix {
			position: absolute;
			top: 0;
			right: 0;
			z-index: 1;
			width: 32px;
			height: 100%;
			text-align: center;
			font-size: 12px;
			color: #999;
		}
	}
</style>